当前位置: 首页 > 知识库问答 >
问题:

如何在TypeScript中指定定义为对象文字的箭头函数的类型?

步弘和
2023-03-14
  let route = {
    path: "/login",
    name: "login",
    component: Login,
    beforeEnter: (to, from, next) => {
      if (store.state.system.loggedIn) {
        next("/");
      } else {
        next();
      }
    },
  }
let route = {
    path: "/login",
    name: "login",
    component: Login,
    beforeEnter: <NavigationGuard> (to, from, next) => {
      if (store.state.system.loggedIn) {
        next("/");
      } else {
        next();
      }
    },
  }

怎么办?

共有1个答案

松茂实
2023-03-14

为了避免与泛型的混淆,您需要使用括号:

<NavigationGuard>((to, from, next) => {
  // …
})

或:

((to, from, next) => {
  // …
}) as NavigationGuard

但您应该能够在父对象上使用键入:

let route: RouteConfig = {
  path: "/login",
  name: "login",
  component: Login,
  beforeEnter: (to, from, next) => {
    if (store.state.system.loggedIn) {
      next("/");
    } else {
      next();
    }
  },
}
 类似资料:
  • 我使用React和Redux,并将动作类型指定为接口,这样我的还原程序就可以利用标记的联合类型来提高类型安全性。 我有如下类型声明: 我想创建创建这些动作的助手函数,我倾向于使用箭头函数。如果我这样写: 编译器无法提供任何帮助来确保这是一个有效的,因为没有明确指定返回类型。我可以通过执行以下操作显式指定返回类型: 但这需要指定我的函数参数两次,因此冗长且难以阅读。 在使用箭头符号时,有没有一种方法

  • 这是一个不同于TypeScript中对象字面量中的类型定义的问题 我有一个接口,接受任何对象作为其属性之一: 虽然属性可以是任何东西,但有时我想指定某些类型。我不想使用'as'关键字,因为我不想强制它(如果我缺少一个属性,我想看到错误)。 我有一种方法可以做到: 但是有没有办法在不使用类型断言的情况下将选项内联在 对象文本中同时做到这一点?换句话说,我想这样做:

  • 在TypeScript类中,可以为属性声明类型,例如:

  • 我想定义一个带有对象和不同类型的接口,例如 在定义上,没有问题,但在调用like后 这不起作用,并出现以下错误 错误错误:未捕获(promise中):TypeError:无法设置未定义的属性“名称”TypeError:无法设置未定义的属性“名称” 有一些相似的主题,但它们并不完全相关。(如何在类型脚本接口中定义对象或者如何在类型脚本中定义对象变量的类型?) 我很感激你帮助我找到解决办法。

  • 我试图弄清楚为什么对象文本中的箭头函数被调用为作为。有人能给我点见识吗? 控制台日志来自Fiddle(其中不使用)。

  • 我先试过这个- 很好用。现在我用胖箭做了同样的事情。在这种情况下,“this”是未定义的。