Глобальні змінні в Javascript та ESLint


100

У мене є декілька файлів javascript, і я визначив деякі глобальні змінні у файлі, які завантажуються перед іншими. Як наслідок, усі файли, завантажені після першого, мають доступ до глобальної змінної. Однак ESLint відображає глобальну змінну як "не визначено". Я не хочу змінювати правила ESLint, і я хотів би знайти елегантний спосіб позбутися цих повідомлень про помилки. Якась підказка? Дякую


4
-> eslint.org/docs/user-guide/configuring#specifying-globals . Документація ESLint - це чудове IMO, ви повинні це поглянути.
Фелікс Клінг

Відповіді:


114

Я не думаю, що злом правил ESLint для кожного файлу є чудовою ідеєю.

Вам слід скоріше визначити globalsв .eslintrcабо package.json.

Для .eslintrc:

"globals": {
    "angular": true
}

Для package.json:

"eslintConfig": {
    "globals": {
        "angular": true
    }
}

PS

Читання документації є достоїнством, обов’язковим для розробників

https://eslint.org/docs/user-guide/configuring#specifying-globals


7
Можливо, варто зазначити, що ви встановлюєте глобальну змінну, trueякщо ви можете призначити змінну чомусь іншому, і falseякщо її не слід перепризначати.
RedSparr0w

6
Посилання на документацію - це чеснота, яку дуже цінують у відповідях на stackoverflow.
Romain G

@RomainG там вже є посилання внизу;) Але я додаю для вас
v-andrew

87

Ви можете додати глобальні файли або для кожного файлу, або у вашій конфігурації. Якщо ви не хочете змінювати конфігурацію, вам доведеться додати використані глобальні дані в кожен файл.

Щоб вказати глобальні значення, використовуючи коментар у вашому файлі JavaScript, використовуйте такий формат:

/* global var1, var2 */

Це визначає дві глобальні змінні var1і var2. Якщо ви хочете необов’язково вказати, що до цих глобальних змінних ніколи не слід писати (лише читати), тоді ви можете встановити кожну з помилковим прапором:

/* global var1:false, var2:false */

http://eslint.org/docs/2.0.0/user-guide/configuring#specifying-globals

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.