【发布时间】:2021-09-29 07:33:06
【问题描述】:
我很惊讶为什么 TypeScript 4.4.3 不会报告回调函数的无效类型?
这在返回“非承诺”类型时似乎是合理的,但在返回 Promise 时,我们似乎必须等待它解决。
setCallback 期望一个返回 void 的函数,但调用返回 Promise<void> 的函数表明有一些东西要等待。
const setCallback = (cb: () => void): void => {
cb();
};
const callback = (): Promise<void> => {
return new Promise(resolve => {
setTimeout(() => resolve(), 100);
});
}
setCallback(callback);
【问题讨论】:
-
由于返回值甚至没有以任何方式使用,所以没关系...见TypeScript FAQ
-
是的,您可以在
callback函数中返回任何内容 -
您可以将具有任何返回类型的函数分配给 void 返回类型函数,因为无论如何您都不能/不能使用返回
标签: typescript