我试图在typescript中编写一个去Bounce函数,但不确定设置分配给setTimeout的变量的类型。我的代码如下所示:
function debounced(func: () => void, wait: number) {
// what type should timeout be here?
let timeout: any;
return () => {
if (timeout) {
clearTimeout(timeout);
}
timeout = setTimeout(() => {
func();
}, wait);
};
}
如果您只是使用浏览器,显式调用window.setTimeout
应该可以解决这个问题。
Typescript将自定义类型定义优先于默认类型。
如果您的tsconfig。json文件包含类型:node,它告诉Typescript使用setTimeout():NodeJS。在node_modules/@types/node中找到Timeout,而不是默认的setTimeout():number方法。
"compilerOptions": {
"types": [
"node",
...
]
}
如果您不明确需要该类型选项,请将其删除,此错误将消失:
"compilerOptions": {
}
如果您希望代码在节点之间可移植。在js和浏览器环境中,可以使用返回类型setTimeout,如下所示:
let timeout: ReturnType<typeof setTimeout>;
因为它声明在节点和浏览器中返回不同的类型。
考虑以下代码: Typescript引发错误:。 但是如果我正在进行基于浏览器的开发,使用感觉是错误的。哪个是正确的类型定义或返回类型,可以让在不求助于声明的情况下工作?
处理计时器时正确的类型是什么?我试过和
下面这个贴图中的告警怎么去除呢,需要怎么修改呢? 代码如下: 问题补充: 实例化后为其赋值时 ts警告:类型实例化过深,且可能无限 PbfLayer这个类中的完整代码如下:
问题内容: 何时使用泛型会引起一些混乱。我看过Java泛型?但仍然有一些问题。 说我有: 我应该使用: 要么 还是取决于执行的任务? 是泛型的,仅用于聚合关系(容器等);也就是说,它们只是用于收藏吗? 问题答案: 人们通常不会使用汽车类型来参数化。他们的车只定义了非常烦人的人。人们也及时换车。因此,即使仅出于语义考虑,我也不会参数化类。 在深入了解此类编程细节之前,请考虑一下您想从现实世界中模仿的
定义一个类型 条件1:变量类型是一个字符串。 条件2:变量值不是 get "typescript": "~5.2.2"