Spec-Zone.ru › ESLint

valid-typeof

Запрещает сравнивать выражения typeof с недопустимыми строковыми значениями

✅ Рекомендуется

Использование конфигурации recommended из @eslint/js в файле конфигурации включает это правило

💡 hasSuggestions

Некоторые проблемы, о которых сообщает это правило, можно вручную исправить с помощью предложений редактора

В подавляющем большинстве случаев результат оператора typeof — одно из следующих строковых значений: "undefined", "object", "boolean", "number", "string", "function", "symbol" и "bigint". Сравнение результата оператора typeof с другими строковыми значениями обычно является опечаткой.

Подробности правила

Это правило проверяет, что выражения typeof сравниваются с допустимыми строковыми значениями.

Примеры неправильного кода для этого правила:

Открыть в Playground
/*eslint valid-typeof: "error"*/

typeof foo === "strnig"
typeof foo == "undefimed"
typeof bar != "nunber"
typeof bar !== "fucntion"

Примеры правильного кода для этого правила:

Открыть в Playground
/*eslint valid-typeof: "error"*/

typeof foo === "string"
typeof bar == "undefined"
typeof foo === baz
typeof bar === typeof qux

Параметры

У этого правила есть параметр-объект:

  • "requireStringLiterals": true разрешает сравнивать выражения typeof только со строковыми литералами или другими выражениями typeof и запрещает сравнения с любыми другими значениями. По умолчанию — false.

requireStringLiterals

Примеры неправильного кода с параметром { "requireStringLiterals": true }:

Открыть в Playground
/*eslint valid-typeof: ["error", { "requireStringLiterals": true }]*/

typeof foo === undefined
typeof bar == Object
typeof baz === "strnig"
typeof qux === "some invalid type"
typeof baz === anotherVariable
typeof foo == 5

Примеры правильного кода с параметром { "requireStringLiterals": true }:

Открыть в Playground
/*eslint valid-typeof: ["error", { "requireStringLiterals": true }]*/

typeof foo === "undefined"
typeof bar == "object"
typeof baz === "string"
typeof bar === typeof qux

Когда не следует использовать это правило

Возможно, это правило стоит отключить, если вы используете оператор typeof для хост-объектов.

Версия

Это правило добавлено в ESLint v0.5.0.

Дополнительная информация

typeof — JavaScript | MDN
developer.mozilla.org

Ресурсы

  • Исходный код правила
  • Исходный код тестов

© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/valid-typeof

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API