Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Typescript中将函数作为参数传递:应为0个参数,但得到1.ts_Javascript_Typescript - Fatal编程技术网

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

Javascript 在Typescript中将函数作为参数传递:应为0个参数,但得到1.ts,javascript,typescript,Javascript,Typescript,我试图将此doSomething函数传递到performAction,但得到的错误是预期为0个参数,但得到1个 type someType = { name: string, id: string } function doSomethingFn(props: someType) { console.log(props.name + " " + props.id); } function performAction(doSomething: () => void) {

我试图将此
doSomething
函数传递到
performAction
,但得到的错误是
预期为0个参数,但得到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);

我是否为Typescript使用了正确的语法?

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

对于这段代码,下面的内容可能会起作用,但您会更好地了解参数及其类型
doSomething
。如果你脑子里已经有了一个抽象概念,也许可以使用一个接口

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

另外,如果代码中的
string
是一个变量,则需要更改该变量,因为
string
是为该类型保留的。如果您现在不知道如何修复
doSomething
的类型,您可以使用
函数
类型


更新
对于更新的问题,您需要编写
函数性能(doSomething:
doSomething:void
您将doSomething作为一个没有参数的函数键入:
doSomething:()=>void
{name:string;id:string;}
)。

您是最棒的!您的快速回复非常准确。谢谢!