詳解Eslint使用教程及注意事項(三)

eslint的具體配置規則與解釋(部分)

這些規則與 JavaScript 代碼中可能的錯誤或邏輯錯誤有關:

   

for-direction

強制 “for” 循環中更新子句的計數器朝着正確的方向移動

   

getter-return

強制 getter 函數中出現 return 語句

   

no-async-promise-executor

禁止使用異步函數作爲 Promise executor

   

no-await-in-loop

禁止在循環中出現 await

   

no-compare-neg-zero

禁止與 -0 進行比較

   

no-cond-assign

禁止條件表達式中出現賦值操作符

   

no-console

禁用 console

   

no-constant-condition

禁止在條件中使用常量表達式

   

no-control-regex

禁止在正則表達式中使用控制字符

   

no-debugger

禁用 debugger

   

no-dupe-args

禁止 function 定義中出現重名參數

   

no-dupe-keys

禁止對象字面量中出現重複的 key

   

no-duplicate-case

禁止出現重複的 case 標籤

   

no-empty

禁止出現空語句塊

   

no-empty-character-class

禁止在正則表達式中使用空字符集

   

no-ex-assign

禁止對 catch 子句的參數重新賦值

   

no-extra-boolean-cast

禁止不必要的布爾轉換

   

no-extra-parens

禁止不必要的括號

   

no-extra-semi

禁止不必要的分號

   

no-func-assign

禁止對 function 聲明重新賦值

   

no-inner-declarations

禁止在嵌套的塊中出現變量聲明或 function 聲明

   

no-invalid-regexp

禁止 RegExp 構造函數中存在無效的正則表達式字符串

   

no-irregular-whitespace

禁止不規則的空白

   

no-misleading-character-class

不允許在字符類語法中出現由多個代碼點組成的字符

   

no-obj-calls

禁止把全局對象作爲函數調用

   

no-prototype-builtins

禁止直接調用 Object.prototypes 的內置屬性

   

no-regex-spaces

禁止正則表達式字面量中出現多個空格

   

no-sparse-arrays

禁用稀疏數組

   

no-template-curly-in-string

禁止在常規字符串中出現模板字面量佔位符語法

   

no-unexpected-multiline

禁止出現令人困惑的多行表達式

   

no-unreachable

禁止在 returnthrowcontinue 和 break 語句之後出現不可達代碼

   

no-unsafe-finally

禁止在 finally 語句塊中出現控制流語句

   

no-unsafe-negation

禁止對關係運算符的左操作數使用否定操作符

   

require-atomic-updates

禁止由於 await 或 yield的使用而可能導致出現競態條件的賦值

   

use-isnan

要求使用 isNaN() 檢查 NaN

   

valid-typeof

強制 typeof 表達式與有效的字符串進行比較

Best Practices

這些規則是關於最佳實踐的,幫助你避免一些問題

   

accessor-pairs

強制 getter 和 setter 在對象中成對出現

   

array-callback-return

強制數組方法的回調函數中有 return 語句

   

block-scoped-var

強制把變量的使用限制在其定義的作用域範圍內

   

class-methods-use-this

強制類方法使用 this

   

complexity

指定程序中允許的最大環路複雜度

   

consistent-return

要求 return 語句要麼總是指定返回的值,要麼不指定

   

curly

強制所有控制語句使用一致的括號風格

   

default-case

要求 switch 語句中有 default 分支

   

dot-location

強制在點號之前和之後一致的換行

   

dot-notation

強制儘可能地使用點號

   

eqeqeq

要求使用 === 和 !==

   

guard-for-in

要求 for-in 循環中有一個 if 語句

   

max-classes-per-file

強制每個文件中包含的的類的最大數量

   

no-alert

禁用 alertconfirm 和 prompt

   

no-caller

禁用 arguments.caller 或 arguments.callee

   

no-case-declarations

不允許在 case 子句中使用詞法聲明

   

no-div-regex

禁止除法操作符顯式的出現在正則表達式開始的位置

   

no-else-return

禁止 if 語句中 return 語句之後有 else 塊

   

no-empty-function

禁止出現空函數

   

no-empty-pattern

禁止使用空解構模式

   

no-eq-null

禁止在沒有類型檢查操作符的情況下與 null 進行比較

   

no-eval

禁用 eval()

   

no-extend-native

禁止擴展原生類型

   

no-extra-bind

禁止不必要的 .bind() 調用

   

no-extra-label

禁用不必要的標籤

   

no-fallthrough

禁止 case 語句落空

   

no-floating-decimal

禁止數字字面量中使用前導和末尾小數點

   

no-global-assign

禁止對原生對象或只讀的全局對象進行賦值

   

no-implicit-coercion

禁止使用短符號進行類型轉換

   

no-implicit-globals

禁止在全局範圍內使用變量聲明和 function 聲明

   

no-implied-eval

禁止使用類似 eval() 的方法

   

no-invalid-this

禁止 this 關鍵字出現在類和類對象之外

   

no-iterator

禁用 __iterator__ 屬性

   

no-labels

禁用標籤語句

   

no-lone-blocks

禁用不必要的嵌套塊

   

no-loop-func

禁止在循環語句中出現包含不安全引用的函數聲明

   

no-magic-numbers

禁用魔術數字

   

no-multi-spaces

禁止使用多個空格

   

no-multi-str

禁止使用多行字符串

   

no-new

禁止使用 new 以避免產生副作用

   

no-new-func

禁止對 Function 對象使用 new 操作符

   

no-new-wrappers

禁止對 StringNumber 和 Boolean 使用 new 操作符

   

no-octal

禁用八進制字面量

   

no-octal-escape

禁止在字符串中使用八進制轉義序列

   

no-param-reassign

禁止對 function 的參數進行重新賦值

   

no-proto

禁用 __proto__ 屬性

   

no-redeclare

禁止多次聲明同一變量

   

no-restricted-properties

禁止使用對象的某些屬性

   

no-return-assign

禁止在 return 語句中使用賦值語句

   

no-return-await

禁用不必要的 return await

   

no-script-url

禁止使用 javascript: url

   

no-self-assign

禁止自我賦值

   

no-self-compare

禁止自身比較

   

no-sequences

禁用逗號操作符

   

no-throw-literal

禁止拋出異常字面量

   

no-unmodified-loop-condition

禁用一成不變的循環條件

   

no-unused-expressions

禁止出現未使用過的表達式

   

no-unused-labels

禁用出現未使用過的標

   

no-useless-call

禁止不必要的 .call() 和 .apply()

   

no-useless-catch

禁止不必要的 catch 子句

   

no-useless-concat

禁止不必要的字符串字面量或模板字面量的連接

   

no-useless-escape

禁用不必要的轉義字符

   

no-useless-return

禁止多餘的 return 語句

   

no-void

禁用 void 操作符

   

no-warning-comments

禁止在註釋中使用特定的警告術語

   

no-with

禁用 with 語句

   

prefer-named-capture-group

建議在正則表達式中使用命名捕獲組

   

prefer-promise-reject-errors

要求使用 Error 對象作爲 Promise 拒絕的原因

   

radix

強制在 parseInt() 使用基數參數

   

require-await

禁止使用不帶 await 表達式的 async 函數

   

require-unicode-regexp

強制在 RegExp 上使用 u 標誌

   

vars-on-top

要求所有的 var 聲明出現在它們所在的作用域頂部

   

wrap-iife

要求 IIFE 使用括號括起來

   

yoda

要求或禁止 “Yoda” 條件

Strict Mode

該規則與使用嚴格模式和嚴格模式指令有關:

   

strict

要求或禁止使用嚴格模式指令

Variables

這些規則與變量聲明有關:

   

init-declarations

要求或禁止 var 聲明中的初始化

   

no-delete-var

禁止刪除變量

   

no-label-var

不允許標籤與變量同名

   

no-restricted-globals

禁用特定的全局變量

   

no-shadow

禁止變量聲明與外層作用域的變量同名

   

no-shadow-restricted-names

禁止將標識符定義爲受限的名字

   

no-undef

禁用未聲明的變量,除非它們在 /*global */ 註釋中被提到

   

no-undef-init

禁止將變量初始化爲 undefined

   

no-undefined

禁止將 undefined 作爲標識符

   

no-unused-vars

禁止出現未使用過的變量

   

no-use-before-define

禁止在變量定義之前使用它們

Node.js and CommonJS

這些規則是關於Node.js 或 在瀏覽器中使用CommonJS 的:

   

callback-return

強制數組方法的回調函數中有 return 語句

   

global-require

要求 require() 出現在頂層模塊作用域中

   

handle-callback-err

要求回調函數中有容錯處理

   

no-buffer-constructor

禁用 Buffer() 構造函數

   

no-mixed-requires

禁止混合常規變量聲明和 require 調用

   

no-new-require

禁止調用 require 時使用 new 操作符

   

no-path-concat

禁止對 __dirname 和 __filename 進行字符串連接

   

no-process-env

禁用 process.env

   

no-process-exit

禁用 process.exit()

   

no-restricted-modules

禁用通過 require 加載的指定模塊

   

no-sync

禁用同步方法

Stylistic Issues

這些規則是關於風格指南的,而且是非常主觀的:

   

array-bracket-newline

在數組開括號後和閉括號前強制換行

   

array-bracket-spacing

強制數組方括號中使用一致的空格

   

array-element-newline

強制數組元素間出現換行

   

block-spacing

禁止或強制在代碼塊中開括號前和閉括號後有空格

   

brace-style

強制在代碼塊中使用一致的大括號風格

   

camelcase

強制使用駱駝拼寫法命名約定

   

capitalized-comments

強制或禁止對註釋的第一個字母大寫

   

comma-dangle

要求或禁止末尾逗號

   

comma-spacing

強制在逗號前後使用一致的空格

   

comma-style

強制使用一致的逗號風格

   

computed-property-spacing

強制在計算的屬性的方括號中使用一致的空格

   

consistent-this

當獲取當前執行環境的上下文時,強制使用一致的命名

   

eol-last

要求或禁止文件末尾存在空行

   

func-call-spacing

要求或禁止在函數標識符和其調用之間有空格

   

func-name-matching

要求函數名與賦值給它們的變量名或屬性名相匹配

   

func-names

要求或禁止使用命名的 function 表達式

   

func-style

強制一致地使用 function 聲明或表達式

   

function-paren-newline

強制在函數括號內使用一致的換行

   

id-blacklist

禁用指定的標識符

   

id-length

強制標識符的最小和最大長度

   

id-match

要求標識符匹配一個指定的正則表達式

   

implicit-arrow-linebreak

強制隱式返回的箭頭函數體的位置

   

indent

強制使用一致的縮進

   

jsx-quotes

強制在 JSX 屬性中一致地使用雙引號或單引號

   

key-spacing

強制在對象字面量的屬性中鍵和值之間使用一致的間距

   

keyword-spacing

強制在關鍵字前後使用一致的空格

   

line-comment-position

強制行註釋的位置

   

linebreak-style

強制使用一致的換行風格

   

lines-around-comment

要求在註釋周圍有空行

   

lines-between-class-members

要求或禁止類成員之間出現空行

   

max-depth

強制可嵌套的塊的最大深度

   

max-len

強制一行的最大長度

   

max-lines

強制最大行數

   

max-lines-per-function

強制函數最大代碼行數

   

max-nested-callbacks

強制回調函數最大嵌套深度

   

max-params

強制函數定義中最多允許的參數數量

   

max-statements

強制函數塊最多允許的的語句數量

   

max-statements-per-line

強制每一行中所允許的最大語句數量

   

multiline-comment-style

強制對多行註釋使用特定風格

   

multiline-ternary

要求或禁止在三元操作數中間換行

   

new-cap

要求構造函數首字母大寫

   

new-parens

強制或禁止調用無參構造函數時有圓括號

   

newline-per-chained-call

要求方法鏈中每個調用都有一個換行符

   

no-array-constructor

禁用 Array 構造函數

   

no-bitwise

禁用按位運算符

   

no-continue

禁用 continue 語句

   

no-inline-comments

禁止在代碼後使用內聯註釋

   

no-lonely-if

禁止 if 作爲唯一的語句出現在 else 語句中

   

no-mixed-operators

禁止混合使用不同的操作符

   

no-mixed-spaces-and-tabs

禁止空格和 tab 的混合縮進

   

no-multi-assign

禁止連續賦值

   

no-multiple-empty-lines

禁止出現多行空行

   

no-negated-condition

禁用否定的表達式

   

no-nested-ternary

禁用嵌套的三元表達式

   

no-new-object

禁用 Object 的構造函數

   

no-plusplus

禁用一元操作符 ++ 和 --

   

no-restricted-syntax

禁用特定的語法

   

no-tabs

禁用 tab

   

no-ternary

禁用三元操作符

   

no-trailing-spaces

禁用行尾空格

   

no-underscore-dangle

禁止標識符中有懸空下劃線

   

no-unneeded-ternary

禁止可以在有更簡單的可替代的表達式時使用三元操作符

   

no-whitespace-before-property

禁止屬性前有空白

   

nonblock-statement-body-position

強制單個語句的位置

   

object-curly-newline

強制大括號內換行符的一致性

   

object-curly-spacing

強制在大括號中使用一致的空格

   

object-property-newline

強制將對象的屬性放在不同的行上

   

one-var

強制函數中的變量要麼一起聲明要麼分開聲明

   

one-var-declaration-per-line

要求或禁止在變量聲明周圍換行

   

operator-assignment

要求或禁止在可能的情況下使用簡化的賦值操作符

   

operator-linebreak

強制操作符使用一致的換行符

   

padded-blocks

要求或禁止塊內填充

   

padding-line-between-statements

要求或禁止在語句間填充空行

   

prefer-object-spread

禁止使用以對象字面量作爲第一個參數的 Object.assign,優先使用對象擴展。

   

quote-props

要求對象字面量屬性名稱用引號括起來

   

quotes

強制使用一致的反勾號、雙引號或單引號

   

semi

要求或禁止使用分號代替 ASI

   

semi-spacing

強制分號之前和之後使用一致的空格

   

semi-style

強制分號的位置

   

sort-keys

要求對象屬性按序排列

   

sort-vars

要求同一個聲明塊中的變量按順序排列

   

space-before-blocks

強制在塊之前使用一致的空格

   

space-before-function-paren

強制在 function的左括號之前使用一致的空格

   

space-in-parens

強制在圓括號內使用一致的空格

   

space-infix-ops

要求操作符周圍有空格

   

space-unary-ops

強制在一元操作符前後使用一致的空格

   

spaced-comment

強制在註釋中 // 或 /* 使用一致的空格

   

switch-colon-spacing

強制在 switch 的冒號左右有空格

   

template-tag-spacing

要求或禁止在模板標記和它們的字面量之間有空格

   

unicode-bom

要求或禁止 Unicode 字節順序標記 (BOM)

   

wrap-regex

要求正則表達式被括號括起來

ECMAScript 6

這些規則只與 ES6 有關, 即通常所說的 ES2015:

   

arrow-body-style

要求箭頭函數體使用大括號

   

arrow-parens

要求箭頭函數的參數使用圓括號

   

arrow-spacing

強制箭頭函數的箭頭前後使用一致的空格

   

constructor-super

要求在構造函數中有 super() 的調用

   

generator-star-spacing

強制 generator 函數中 * 號周圍使用一致的空格

   

no-class-assign

禁止修改類聲明的變量

   

no-confusing-arrow

禁止在可能與比較操作符相混淆的地方使用箭頭函數

   

no-const-assign

禁止修改 const 聲明的變量

   

no-dupe-class-members

禁止類成員中出現重複的名稱

   

no-duplicate-imports

禁止重複模塊導入

   

no-new-symbol

禁止 Symbolnew 操作符和 new 一起使用

   

no-restricted-imports

禁止使用指定的 import 加載的模塊

   

no-this-before-super

禁止在構造函數中,在調用 super() 之前使用 this 或 super

   

no-useless-computed-key

禁止在對象中使用不必要的計算屬性

   

no-useless-constructor

禁用不必要的構造函數

   

no-useless-rename

禁止在 import 和 export 和解構賦值時將引用重命名爲相同的名字

   

no-var

要求使用 let 或 const 而不是 var

   

object-shorthand

要求或禁止對象字面量中方法和屬性使用簡寫語法

   

prefer-arrow-callback

要求回調函數使用箭頭函數

   

prefer-const

要求使用 const 聲明那些聲明後不再被修改的變量

   

prefer-destructuring

優先使用數組和對象解構

   

prefer-numeric-literals

禁用 parseInt() 和 Number.parseInt(),使用二進制,八進制和十六進制字面量

   

prefer-rest-params

要求使用剩餘參數而不是 arguments

   

prefer-spread

要求使用擴展運算符而非 .apply()

   

prefer-template

要求使用模板字面量而非字符串連接

   

require-yield

要求 generator 函數內有 yield

   

rest-spread-spacing

強制剩餘和擴展運算符及其表達式之間有空格

   

sort-imports

強制模塊內的 import 排序

   

symbol-description

要求 symbol 描述

   

template-curly-spacing

要求或禁止模板字符串中的嵌入表達式周圍空格的使用

   

yield-star-spacing

強制在 yield* 表達式中 * 周圍使用空格

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章