unicorn/explicit-timer-delay 样式
功能
强制要求或禁止为 setTimeout() 和 setInterval() 显式提供 delay 参数。
为什么这不好?
使用 setTimeout() 或 setInterval() 时,delay 参数是 可选的,默认为 0。此规则允许你强制要求始终显式提供或省略 delay 参数(当其值为 0 时)。
示例
以下是此规则的错误代码示例:
javascript
setTimeout(() => console.log("Hello"));
setInterval(callback);
window.setTimeout(() => console.log("Hello"));
globalThis.setInterval(callback);以下是此规则的正确代码示例:
javascript
setTimeout(() => console.log("Hello"), 0);
setInterval(callback, 0);
window.setTimeout(() => console.log("Hello"), 0);
globalThis.setInterval(callback, 0);
setTimeout(() => console.log("Hello"), 1000);
setInterval(callback, 100);使用 "never" 选项时,不允许显式指定 0 延迟, 但仍允许指定非零延迟。
以下是使用 "never" 选项时的错误代码示例:
javascript
setTimeout(() => console.log("Hello"), 0);
setInterval(callback, 0);
window.setTimeout(() => console.log("Hello"), 0);
globalThis.setInterval(callback, 0);以下是使用 "never" 选项时的正确代码示例:
javascript
setTimeout(() => console.log("Hello"));
setInterval(callback);
window.setTimeout(() => console.log("Hello"));
globalThis.setInterval(callback);
setTimeout(() => console.log("Hello"), 1000);
globalThis.setInterval(callback, 100);配置
此规则接受以下字符串值之一:
"always"
为明确起见,要求显式传入 delay 参数。
"never"
不允许显式设置 0 延迟,建议使用隐式默认值。
如何使用
To enable this rule using the config file or in the CLI, you can use:
json
{
"rules": {
"unicorn/explicit-timer-delay": "error"
}
}ts
import { defineConfig } from "oxlint";
export default defineConfig({
rules: {
"unicorn/explicit-timer-delay": "error",
},
});bash
oxlint --deny unicorn/explicit-timer-delay版本
此规则在 v1.73.0 中添加。
