延續前一篇的主題,來介紹一些我們應用在專案的 ESLint 規範
禁用 console 系列語法
/*eslint no-console: "error"*/
console.log("Log a debug level message.")
console.warn("Log a warn level message.")
console.error("Log an error level message.")
禁用 debugger
/*eslint no-debugger: "error"*/
function isTruthy(x) {
debugger;
return Boolean(x);
}
禁止 Function 中出現重名參數
/*eslint no-dupe-args: "error"*/
function foo(a, b, a) {
console.log("value of the second a:", a);
}
var bar = function (a, b, a) {
console.log("value of the second a:", a);
};
禁止物件出現重複的 KEY 值
/*eslint no-dupe-keys: "error"*/
var foo = {
bar: "baz",
bar: "qux"
};
var foo = {
"bar": "baz",
bar: "qux"
};
var foo = {
0x1: "baz",
1: "qux"
};
禁止出現重複的 case 標籤
/*eslint no-duplicate-case: "error"*/
var a = 1,
one = 1;
switch (a) {
case 1:
break;
case 2:
break;
case 1: // duplicate test expression
break;
default:
break;
}
禁止出現空的區塊
/*eslint no-empty: "error"*/
if (foo) {
}
while (foo) {
}
禁止非必要的分號
/*eslint no-extra-semi: "error"*/
var x = 5;;
必須使用 isNaN
檢查 NaN
/*eslint use-isnan: "error"*/
if (foo == NaN) {
// ...
}
// 正確用法
if (isNaN(foo)) {
// ...
}
禁止重複宣告變數
/*eslint no-redeclare: "error"*/
var a = 3;
var a = 10;
禁止引用未宣告的變數,除非在 /*global*/
註解中註明
/*eslint no-undef: "error"*/
var a = someFunction();
b = 10;