考虑以下代码:
const timer: number = setTimeout(() => '', 1000);
Typescript 抛出错误:Type 'Timer' is not assignable to type 'number'。
快速查找告诉我 setTimeout
返回 NodeJS.Timer
.
但是如果我在做基于浏览器的开发,使用NodeJS.Timer
感觉不对。使 setTimeout
工作而无需求助于 any
声明的正确类型定义或返回类型是什么?
最佳答案
最简单的解决方案是允许类型推断工作并且根本不指定任何类型。如果您需要指定一个类型,因为浏览器和节点声明之间的类型不一致,您可以使用 ReturnType
来指定变量的类型是 的返回类型setTimeout
是:
const timer: ReturnType<typeof setTimeout> = setTimeout(() => '', 1000);
或者,也可以使用 window.setTimeout
而不仅仅是 setTimeout
。它返回正确的返回类型。
关于typescript - TypeScript 中的 setTimeout 应该使用什么返回类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51040703/