Jon*_*Tan 9 javascript typescript
我试图将此doSomething
函数传入performAction
,但我得到的错误是Expected 0 arguments, but got 1
type someType = {
name: string,
id: string
}
function doSomethingFn(props: someType) {
console.log(props.name + " " + props.id);
}
function performAction(doSomething: () => void) {
doSomething({
name: "foo",
id: "bar"
});
}
performAction(doSomethingFn);
Run Code Online (Sandbox Code Playgroud)
我是否为 Typescript 使用了正确的语法?
Dev*_*h J 12
该doSomething
类型似乎不正确。在类型声明中——() => void
它不带参数,但稍后你将参数传递给它。
对于这段代码,下面的代码是可行的,但您会更好地了解doSomething
. 如果您已经有了一个抽象,可能会使用接口。
function performAction(doSomething: (stuff: { name: string, id: string }) => void) {
doSomething({
name: "foo",
id: "bar"
});
}
Run Code Online (Sandbox Code Playgroud)
上面的演示。
此外,如果string
在您的代码中是一个变量,您需要更改它,因为它string
是为该类型保留的。如果您现在不知道要修复什么类型,则doSomething
可以使用该Function
类型。演示
对于您更新的问题,您需要编写function performAction(doSomething: (stuff: someType) => void
Demo
归档时间: |
|
查看次数: |
13340 次 |
最近记录: |