在Typescript中将函数作为参数传递:预期为0个参数,但得到1.ts

时间:2019-03-27 20:12:34

标签: javascript typescript

我正在尝试将此Label:Off函数传递给'visible':[True] * len(pos) 'visible':[False] * len(pos) ,但是我遇到的错误是doSomething

performAction

我为Typescript使用正确的语法吗?

2 个答案:

答案 0 :(得分:2)

doSomething类型似乎不正确。在类型声明– () => void中,不带任何参数,但是稍后您将向其传递参数。

对于这段代码,下面的方法可以工作,但是您将更好地了解doSomething的参数及其类型。如果您已经有了抽象的想法,请使用接口。

function performAction(doSomething: (stuff: { name: string, id: string }) => void) {
  doSomething({
    name: "foo",
    id: "bar"
  });
}

Demo以上。

如果代码中的string是变量,则需要更改它,因为string是为该类型保留的。如果您现在还不能解决doSomething类型的问题,可以使用Function类型。 Demo


更新

对于更新后的问题,您需要写function performAction(doSomething: (stuff: someType) => void Demo

答案 1 :(得分:2)

您将doSomething键入为不带参数的函数:doSomething: () => void。将其设为dunno,doSomething: (arg: SomeInterface) => void(SomeInterface例如为{name: string; id: string;})。