打字稿:必需的回调参数?

Jaz*_*ash 3 typescript

我想定义一个将回调作为参数的函数,并且应该需要该回调的参数。Typescript 正确报告了参数类型不匹配的回调,但没有说明没有预期参数的回调。

为什么第二次on调用没有出错,有什么办法可以让它出错?

function on(callback: (num: number) => void) {
    callback(5);
}

on((string:bob) => { // typescript error
    console.log("What");
});

on(() => { // no typescript error?
    console.log("What");
});
Run Code Online (Sandbox Code Playgroud)

Rya*_*ugh 5

没有办法做到这一点。

具有比主叫用户提供较少的参数回调是极为常见的在JavaScript -功能,如forEachmapfilter等所有提供3个或多个参数而被频繁给出1-参数用作回调。

  • 但是,如果您不想在回调的主体中使用该参数,那么添加回调参数的意义是什么? (5认同)
  • 是的,但我认为 Typescript 会提供一种使用所需参数定义回调的方法。像 `function doThing(callback: (num!: number)...` 这样的东西会很酷,而不是 `?` 可选参数标识符。 (2认同)
  • 它在 Javascript 中可能很常见,但它也是错误的常见来源。我预计 Typescript 会提供一种在回调中强制执行参数的方法...有人找到了一种方法来做到这一点吗? (2认同)