explicit-timer-delay
June 13, 2026 ยท View on GitHub
๐ Enforce or disallow explicit delay argument for setTimeout() and setInterval().
๐ผ This rule is enabled in the following configs: โ
recommended, โ๏ธ unopinionated.
๐ง This rule is automatically fixable by the --fix CLI option.
When using setTimeout() or setInterval(), the delay parameter is optional and defaults to 0. This rule allows you to enforce whether the delay argument should always be explicitly provided or omitted when it's 0.
Examples
// โ
setTimeout(() => console.log('Hello'));
// โ
setTimeout(() => console.log('Hello'), 0);
// โ
setInterval(callback);
// โ
setInterval(callback, 0);
// โ
window.setTimeout(() => console.log('Hello'));
// โ
window.setTimeout(() => console.log('Hello'), 0);
// โ
globalThis.setInterval(callback);
// โ
globalThis.setInterval(callback, 0);
// โ
setTimeout(() => console.log('Hello'), 1000);
setInterval(callback, 100);
Options
Type: string
Default: 'always'
'always'(default)- Require explicit
delayargument for clarity.
- Require explicit
'never'- Disallow explicit
0delay, prefer implicit default. Non-zero delays are still allowed.
- Disallow explicit
'never'
{
'unicorn/explicit-timer-delay': ['error', 'never']
}
// โ
setTimeout(() => console.log('Hello'), 0);
// โ
setTimeout(() => console.log('Hello'));
// โ
setInterval(callback, 0);
// โ
setInterval(callback);
// โ
window.setTimeout(() => console.log('Hello'), 0);
// โ
window.setTimeout(() => console.log('Hello'));
// โ
globalThis.setInterval(callback, 0);
// โ
globalThis.setInterval(callback);
// โ
setTimeout(() => console.log('Hello'), 1000);
globalThis.setInterval(callback, 100);