Skip to content
← Back to rules

unicorn/explicit-timer-delay 样式

🛠️ An auto-fix is available for this rule.

功能

强制要求或禁止为 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 中添加。

参考资料