n/prefer-global/timers

April 30, 2026 ยท View on GitHub

๐Ÿ“ Enforce either global timer functions or require("timers").

The timer functions clearImmediate, clearInterval, clearTimeout, setImmediate, setInterval, and setTimeout are defined as global variables but are also available in the timers module.

console.log(setTimeout === require("timers").setTimeout) //โ†’ true

It will be readable if we use either consistently.

๐Ÿ“– Rule Details

This rule enforces which timer functions we should use.

Options

This rule has a string option.

{
    "n/prefer-global/timers": ["error", "always" | "never"]
}
  • "always" (default) ... enforces to use the global timer functions rather than require("timers").*.
  • "never" ... enforces to use require("timers").* rather than the global timer functions.

always

Examples of ๐Ÿ‘Ž incorrect code for this rule:

/*eslint n/prefer-global/timers: [error]*/

const { setTimeout } = require("timers")
setTimeout(() => {}, 1000)

Examples of ๐Ÿ‘ correct code for this rule:

/*eslint n/prefer-global/timers: [error]*/

setTimeout(() => {}, 1000)

never

Examples of ๐Ÿ‘Ž incorrect code for the "never" option:

/*eslint n/prefer-global/timers: [error, never]*/

setTimeout(() => {}, 1000)

Examples of ๐Ÿ‘ correct code for the "never" option:

/*eslint n/prefer-global/timers: [error, never]*/

const { setTimeout } = require("timers")
setTimeout(() => {}, 1000)

๐Ÿ”Ž Implementation