'Magic numbers' are numbers that occur multiple times in code without an explicit meaning. They should preferably be replaced by named constants.
The @typescript-eslint/no-magic-numbers
rule extends the no-magic-numbers
rule from ESLint core, and adds support for handling Typescript specific code that would otherwise trigger the rule.
See the ESLint documentation for more details on the no-magic-numbers
rule.
{
// note you must disable the base rule as it can report incorrect errors
"no-magic-numbers": "off",
"@typescript-eslint/no-magic-numbers": ["error", { "ignoreNumericLiteralTypes": true }]
}
In addition to the options supported by the no-magic-numbers
rule in ESLint core, the rule adds the following options:
A boolean to specify if numbers used in Typescript numeric literal types are considered okay. false
by default.
Examples of incorrect code for the { "ignoreNumericLiteralTypes": false }
option:
/*eslint @typescript-eslint/no-magic-numbers: ["error", { "ignoreNumericLiteralTypes": false }]*/
type SmallPrimes = 2 | 3 | 5 | 7 | 11;
Examples of correct code for the { "ignoreNumericLiteralTypes": true }
option:
/*eslint @typescript-eslint/no-magic-numbers: ["error", { "ignoreNumericLiteralTypes": true }]*/
type SmallPrimes = 2 | 3 | 5 | 7 | 11;
A boolean to specify if enums used in Typescript are considered okay. false
by default.
Examples of incorrect code for the { "ignoreEnum": false }
option:
/*eslint @typescript-eslint/no-magic-numbers: ["error", { "ignoreEnum": false }]*/
enum foo = {
SECOND = 1000,
}
Examples of correct code for the { "ignoreEnum": true }
option:
/*eslint @typescript-eslint/no-magic-numbers: ["error", { "ignoreEnum": true }]*/
enum foo = {
SECOND = 1000,
}
Taken with ❤️ from ESLint core