Spec-Zone.ru › ESLint

no-var

Требуйте использовать let или const вместо var

🔧 Можно исправить

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

ECMAScript 6 позволяет программистам создавать переменные с блочной областью видимости вместо области видимости функции с помощью ключевых слов let и const. Блочная область видимости распространена во многих других языках программирования и помогает программистам избегать таких ошибок, как:

var count = people.length;
var enoughFood = sandwiches.length >= count;

if (enoughFood) {
    var count = sandwiches.length; // accidentally overriding the count variable
    console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
}

// our count variable is no longer accurate
console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

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

Это правило призвано препятствовать использованию var и поощрять использование вместо него const или let.

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

Открыть в Playground
/*eslint no-var: "error"*/

var x = "y";
var CONFIG = {};

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

Открыть в Playground
/*eslint no-var: "error"*/

let x = "y";
const CONFIG = {};

Это правило также поддерживает синтаксис типов TypeScript. В TypeScript есть несколько способов объявить глобальные переменные. Только использование var подходит для всех случаев. Для справки см. песочницу TypeScript.

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

Открыть в Playground
/*eslint no-var: "error"*/

declare var x: number

declare namespace ns {
	var x: number
}

declare module 'module' {
	var x: number
}

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

Открыть в Playground
/*eslint no-var: "error"*/

declare global {
    declare var x: number
}

Параметры

У этого правила нет параметров.

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

Помимо сред, не поддерживающих ES6, существующие проекты JavaScript, которые только начинают внедрять ES6 в свою кодовую базу, могут не применять это правило, если затраты на переход с var на let слишком велики.

Версия

Это правило появилось в ESLint v0.12.0.

Ресурсы

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

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

Spec-Zone.ru

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