Biến toàn cục trong Javascript và ESLint


100

Tôi có nhiều tệp javascript và tôi đã xác định một số biến toàn cục trong một tệp tải trước các tệp khác. Do đó, tất cả các tệp được tải sau tệp đầu tiên đều có quyền truy cập vào biến toàn cục. Tuy nhiên ESLint hiển thị biến toàn cục là "không được định nghĩa". Tôi không muốn thay đổi các quy tắc của ESLint và tôi muốn tìm một cách thanh lịch để loại bỏ các thông báo lỗi này. Có manh mối nào không? Cảm ơn


4
-> eslint.org/docs/user-guide/configuring#specify-globals . Tài liệu của ESLint là IMO tuyệt vời, bạn nên xem qua.
Felix Kling

Câu trả lời:


114

Tôi không nghĩ rằng việc hack các quy tắc ESLint trên mỗi tệp là một ý tưởng tuyệt vời.

Bạn nên xác định globalstrong .eslintrchoặc package.json.

Đối với .eslintrc:

"globals": {
    "angular": true
}

Đối với package.json:

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

PS

Đọc tài liệu là một đức tính bắt buộc đối với các nhà phát triển

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


7
Có thể cần lưu ý rằng bạn đặt biến toàn cục thành truenếu bạn có thể gán biến cho thứ khác và falsenếu nó không nên được gán lại.
RedSparr0w

6
Liên kết tài liệu là một đức tính được đánh giá cao trên các câu trả lời stackoverflow.
Romain G

@RomainG đã có liên kết bên dưới;) Nhưng tôi sẽ thêm một liên kết cho bạn
v-andrew

87

Bạn có thể thêm hình cầu vào mỗi tệp hoặc trong cấu hình của mình. Nếu bạn không muốn thay đổi cấu hình của mình, bạn sẽ phải thêm các hình cầu đã sử dụng vào mỗi tệp.

Để chỉ định hình cầu bằng cách sử dụng nhận xét bên trong tệp JavaScript của bạn, hãy sử dụng định dạng sau:

/* global var1, var2 */

Điều này xác định hai biến toàn cục, var1var2. Nếu bạn muốn tùy ý chỉ định rằng các biến toàn cục này không bao giờ được ghi vào (chỉ đọc), thì bạn có thể đặt cho mỗi biến một cờ sai:

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

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.