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.
Примеры неправильного кода для этого правила:
/*eslint no-var: "error"*/
Примеры правильного кода для этого правила:
/*eslint no-var: "error"*/
let x = "y";
const CONFIG = {};
Это правило также поддерживает синтаксис типов TypeScript. В TypeScript есть несколько способов объявить глобальные переменные. Только использование var подходит для всех случаев. Для справки см. песочницу TypeScript.
Примеры неправильного кода TypeScript для этого правила:
/*eslint no-var: "error"*/
declare namespace ns {
}
declare module 'module' {
}
Примеры правильного кода TypeScript для этого правила:
/*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