useValidTypeof
Summary
Section titled Summary- Rule available since:
v1.0.0
- Diagnostic Category:
lint/suspicious/useValidTypeof
- This rule is recommended, which means is enabled by default.
- This rule has an unsafe fix.
- The default severity of this rule is error.
- Sources:
- Same as
valid-typeof
- Same as
Description
Section titled DescriptionThis rule checks that the result of a typeof
expression is compared to a valid value.
Examples
Section titled ExamplesInvalid
Section titled Invalidtypeof foo === "strnig";
code-block.js:1:16 lint/suspicious/useValidTypeof ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✖ “strnig” is not a valid typeof value.
> 1 │ typeof foo === “strnig”;
│ ^^^^^^^^
2 │
typeof foo == "undefimed";
code-block.js:1:15 lint/suspicious/useValidTypeof ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✖ “undefimed” is not a valid typeof value.
> 1 │ typeof foo == “undefimed”;
│ ^^^^^^^^^^^
2 │
typeof bar != "nunber";
code-block.js:1:15 lint/suspicious/useValidTypeof ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✖ “nunber” is not a valid typeof value.
> 1 │ typeof bar != “nunber”;
│ ^^^^^^^^
2 │
typeof foo === undefined;
code-block.js:1:16 lint/suspicious/useValidTypeof ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✖ Invalid typeof comparison.
> 1 │ typeof foo === undefined;
│ ^^^^^^^^^
2 │
ℹ Compare with one of the following string literals:
- “bigint”
- “boolean”
- “function”
- “number”
- “object”
- “string”
- “symbol”
- “undefined”
typeof foo == 0;
code-block.js:1:15 lint/suspicious/useValidTypeof ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✖ Invalid typeof comparison.
> 1 │ typeof foo == 0;
│ ^
2 │
ℹ Compare with one of the following string literals:
- “bigint”
- “boolean”
- “function”
- “number”
- “object”
- “string”
- “symbol”
- “undefined”
Valid
Section titled Validtypeof foo === "string";
typeof bar == "undefined";
typeof bar === typeof qux;
typeof foo === bar
How to configure
Section titled How to configure{ "linter": { "rules": { "suspicious": { "useValidTypeof": "error" } } }}