摘要:規則簡介花了一天整理的,可能部分翻譯的有錯誤,后面會再校對一次規則說明默認情況下不會啟用任何規則。
eslint V4.1.1 規則簡介
花了一天整理的,可能部分翻譯的有錯誤,后面會再校對一次
規則說明:默認情況下不會啟用任何規則。配置文件中的"extends":"eslint:recommended"屬性可以啟用一些默認的驗證規則,默認的規則在下表會用R表示出來
使用--fix命令可以自動修復一些特定的規則(大部分為空格類規則),下面用F表示
規則說明0=off,1=warn, 2=error
可能性的錯誤這些規則主要針對語法錯誤和邏輯錯誤
參數 | 描述 | 備注 | 例子 |
---|---|---|---|
for-direction | for循環 需要往正確的方向循環,避免死循環 | 案例 | |
no-await-in-loop | 禁止循環中有 await | 案例 | |
no-compare-neg-zero | 禁止和 -0 比較 | R | 案例 |
no-cond-assign | 禁止在條件表達式使用賦值 | R | 案例 |
no-console | 禁止使用console | R | 案例 |
no-constant-condition | 禁止在條件中使用常量表達式 | R | 案例 |
no-control-regex | 禁止在正則中使用控制字符 | R | 案例 |
no-debugger | 禁止使用debugger | R F | 案例 |
no-dupe-args | 禁止在函數定義中傳入重復的參數 | R | 案例 |
no-dupe-keys | 禁止在對象字面量中使用重復的key | R | 案例 |
no-duplicate-case | 禁止在case中出現重復的標簽 | R | 案例 |
no-empty | 禁止塊語句中的內容為空 | R | 案例 |
no-empty-character-class | 禁止正則表達式中的[]內容為空 | R | 案例 |
no-ex-assign | 禁止給catch語句中的異常參數賦值 | R | 案例 |
no-extra-boolean-cast | 禁止不必要的bool轉換 | R F | 案例 |
no-extra-parens | 禁止不需要的括號 | F | 案例 |
no-extra-semi | 禁止多余的分號 | R F | 案例 |
no-func-assign | 禁止重復的函數聲明 | R | 案例 |
no-inner-declarations | 禁止在塊語句中使用聲明(變量或函數) | R | 案例 |
no-invalid-regexp | 禁止無效的正則 | R | 案例 |
no-irregular-whitespace | 禁止不統一的空格 | R | 案例 |
no-obj-calls | 禁止重定義內置全局對象 | R | 案例 |
no-prototype-builtins | 禁止在對象上直接調用object.prototype方法 | 案例 | |
no-regex-spaces | 禁止在正則表達式字面量中使用多個空格 | R F | 案例 |
no-sparse-arrays | 禁止稀疏數組 | R | 案例 |
no-template-curly-in-string | 禁止在模板中使用不同的符號 | 案例 | |
no-unexpected-multiline | 禁止多行表達式 | R | 案例 |
no-unreachable | 禁止寫無法執行的代碼(return,throw,contine,break) | R | 案例 |
no-unsafe-finally | 禁止在finally中使用return,throw,contine,break | R | 案例 |
no-unsafe-negation | 禁止在運算符左側執行關系運算 | R F | 案例 |
use-isnan | 禁止比較時使用NaN,只能用isNaN() | R | 案例 |
valid-jsdoc | 強制驗證jsdoc規則 | 案例 | |
valid-typeof | 強制使用合法的typeof的值 | R | 案例 |
這些規則是能夠幫助你避免一些問題的最好方法
參數 | 描述 | 備注 | 例子 |
---|---|---|---|
accessor-pairs | 強制在對象中使用getter/setter | 案例 | |
array-callback-return | 強制在數組方法的回調中執行return | 案例 | |
block-scoped-var | 強制使用它們定義的范圍內的變量 | 案例 | |
class-methods-use-this | 強制該類方法利用 this | 案例 | |
complexity | 強制設置一個循環的最大值 | 案例 | |
consistent-return | 要求return語句要么始終有值要么始終沒值 | 案例 | |
curly | 強制所有控制語句執行統一的括號風格 | F | 案例 |
default-case | switch語句中需要有default值 | 案例 | |
dot-location | 強制在點之前和之后執行一致的換行符 | F | 案例 |
dot-notation | 強制使用.符號,避免[] | F | 案例 |
eqeqeq | 使用 === 和 !== | F | 案例 |
guard-for-in | for in循環要用if語句過濾 | 案例 | |
no-alert | 禁止使用alert,confirm,prompt | 案例 | |
no-caller | 禁止使用arguments.caller或 arguments.callee | 案例 | |
no-case-declarations | 禁止在case子句中使用詞法聲明,一定要用,封裝在塊中 | R | 案例 |
no-div-regex | 禁止在正則表達式開頭用除法 | 案例 | |
no-else-return | if語句里面有return,后面禁止跟else語句 | F | 案例 |
no-empty-function | 禁止空函數 | 案例 | |
no-empty-pattern | 禁止空的解構模式 | R | 案例 |
no-eq-null | 禁止用類型檢查運算符和null比較 | 案例 | |
no-eval | 禁止使用eval() | 案例 | |
no-extend-native | 禁止擴展native類型 | 案例 | |
no-extra-bind | 禁止非必要的函數綁定 | F | 案例 |
no-extra-label | 禁止非必要的label | F | 案例 |
no-fallthrough | 禁止switch穿透 | R | 案例 |
no-floating-decimal | 禁止省略浮點數中的0 | F | 案例 |
no-global-assign | 禁止對本地對象或只讀全局變量重定義 | R | 案例 |
no-implicit-coercion | 禁止隱式轉換 | F | 案例 |
no-implicit-globals | 禁止在全局范圍內聲明變量和函數 | 案例 | |
no-implied-eval | 禁止使用隱式eval | 案例 | |
no-invalid-this | 禁止無效的this,只能用在構造器,類,對象字面量 | 案例 | |
no-extra-label | 禁止非必要的label | F | 案例 |
no-iterator | 禁止使用__iterator__ 屬性 | 案例 | |
no-labels | 禁止標簽聲明 | 案例 | |
no-lone-blocks | 禁止非必要的嵌套塊 | F | 案例 |
no-loop-func | 禁止在循環中使用函數(如果沒有引用外部變量不形成閉包就可以) | 案例 | |
no-magic-numbers | 禁止魔數字(硬寫到代碼里的數字常量) | 案例 | |
no-multi-spaces | 禁止多個空格) | F | 案例 |
no-multi-str | 禁止多行字符串(不能用/換行) | 案例 | |
no-new | 禁止在使用new構造一個實例后不賦值 | 案例 | |
no-new-func | 禁止使用new Function | 案例 | |
no-new-wrappers | 禁止使用new創建包裝實例,new String new Boolean new Number | 案例 | |
no-octal | 禁止使用八進制數字 | R | 案例 |
no-octal-escape | 禁止使用八進制轉義序列 | 案例 | |
no-param-reassign | 禁止重新定義參數 | 案例 | |
no-proto | 禁止使用__proto__ | 案例 | |
no-redeclare | 禁止重復聲明變量 | R | 案例 |
no-restricted-properties | 禁止在一些特定的對象上的特定屬性 | 案例 | |
no-return-assign | return 語句中不能有賦值表達式 | 案例 | |
no-return-await | 禁止非必要的return await | 案例 | |
no-script-url | 禁止使用javascript:void(0) | R | 案例 |
no-self-assign | 禁止雙方完全一致的任務 | R | 案例 |
no-self-compare | 禁止比較自身 | 案例 | |
no-sequences | 禁止使用逗號運算符 | 案例 | |
no-throw-literal | 禁止拋出字面量錯誤 throw "error"; | 案例 | |
no-unmodified-loop-condition | 禁止不變的循環條件 | 案例 | |
no-unused-expressions | 禁止無用的表達式 | 案例 | |
no-unused-labels | 禁止不用的label | R F | 案例 |
no-useless-call | 禁止非必要的call和apply | 案例 | |
no-useless-concat | 禁止不必要的連接文字或模板文字 | 案例 | |
no-useless-escape | 禁止不必要的轉義字符 | R | 案例 |
no-void | 禁止使用void | 案例 | |
no-warning-comments | 禁止有警告備注 | 案例 | |
no-with | 禁止使用with聲明 | 案例 | |
prefer-promise-reject-errors | 使用error對象作為Promise駁回原因 | 案例 | |
radix | parseInt必須指定第二個參數 | 案例 | |
require-await | 禁止async中無await表達式 | 案例 | |
vars-on-top | var必須放在作用域頂部 | 案例 | |
wrap-iife | 立即執行函數表達式的小括號風格 | F | 案例 |
yoda | 禁止尤達條件 | F | 案例 |
這些規則是能夠幫助你避免一些問題的最好方法
參數 | 描述 | 備注 | 例子 |
---|---|---|---|
strict | 使用嚴格模式 | F | 案例 |
這些規則與變量聲明有關
參數 | 描述 | 備注 | 例子 |
---|---|---|---|
init-declarations | 聲明時必須賦初值 | 案例 | |
no-catch-shadow | 禁止catch子句參數與外部作用域變量同名 | 案例 | |
no-delete-var | 禁止刪除變量 | R | 案例 |
no-label-var | 禁止label名與var聲明的變量名相同 | 案例 | |
no-restricted-globals | 禁止指定的全局變量 | 案例 | |
no-shadow | 禁止外部作用域中的變量與它所包含的作用域中的變量或參數同名 | 案例 | |
no-shadow-restricted-names | 嚴格模式中規定的限制標識符不能作為聲明時的變量名使用 | 案例 | |
no-undef | 不能有未定義的變量,除非在/global /注釋中 | R | 案例 |
no-undef-init | 禁止將變量初始化為undefined | F | 案例 |
no-undefined | 禁止使用undefined作為標識符 | 案例 | |
no-unused-vars | 禁止未使用的變量 | R | 案例 |
no-use-before-define | 禁止在定義之前使用變量 | 案例 |
這些規則與在Node.js中運行的代碼相關聯,或與使用CommonJS的瀏覽器相關:
參數 | 描述 | 備注 | 例子 |
---|---|---|---|
callback-return | 避免多次調用回調 | 案例 | |
global-require | 需要將require()調用放置在模塊頂部 | 案例 | |
handle-callback-err | 在回調中需要錯誤處理 | 案例 | |
no-buffer-constructor | 禁止使用Buffer()構造函數 | 案例 | |
no-mixed-requires | 不允許調用與常規變量聲明混合 | 案例 | |
no-new-require | 禁止使用new require | 案例 | |
no-path-concat | 禁止使用__dirname和__filename連接字符串 | 案例 | |
no-process-env | 禁止使用process.env | 案例 | |
no-process-exit | 禁止使用process.exit() | 案例 | |
no-process-env | 禁止使用process.env | 案例 | |
no-restricted-modules | 禁止通過require加載指定的模塊,用了會報錯 | 案例 | |
no-sync | nodejs 禁止同步方法 | 案例 |
這些規則主要是關于代碼風格的,主觀因素較強
參數 | 描述 | 備注 | 例子 |
---|---|---|---|
array-bracket-newline | 強制在數組的頭尾括號之前執行換行 | F | 案例 |
array-bracket-spacing | 強制在數組括號內執行一致的間隔 | F | 案例 |
array-element-newline | 強制在每個數組元素之后執行換行符 | F | 案例 |
block-spacing | 強制在單行塊內實施一致的間距 | F | 案例 |
brace-style | 強制塊的括號風格統一 | 案例 | |
camelcase | 強制駝峰命名 | 案例 | |
capitalized-comments | 強制或禁止注釋的第一個字母大寫 | F | 案例 |
comma-dangle | 逗號風格,換行時在行首還是行尾 | F | 案例 |
comma-spacing | 強制逗號前后的空格 | F | 案例 |
comma-style | 塊的括號風格統一 | 案例 | |
computed-property-spacing | 強制在計算屬性括號內一致的間距 | F | 案例 |
consistent-this | 強制規定this別名 | 案例 | |
eol-last | 強制添加或禁止在文件末尾的換行 | F | 案例 |
func-call-spacing | 強制添加或禁止在函數標識符與其調用之間的間距 | F | 案例 |
func-name-matching | 要求函數名稱與其分配到的變量或屬性的名稱相匹配 | 案例 | |
func-names | 強制添加或禁止命名函數表達式 | 案例 | |
func-style | 強制統一使用函數聲明或表達式 | 案例 | |
id-blacklist | 禁止指定的標識符 | 案例 | |
id-length | 強制標識符長度最小和最大值 | 案例 | |
id-match | 要求標識符與指定的正則表達式匹配 | 案例 | |
indent | 強制統一的縮進 | F | 案例 |
jsx-quotes | 強制在JSX屬性中一致地使用雙引號或單引號 | F | 案例 |
key-spacing | 強制在對象文字屬性中強制實現鍵和值之間的一致間距 | F | 案例 |
keyword-spacing | 強制在關鍵字前后執行一致的間距 | F | 案例 |
line-comment-position | 強制規定注釋的位置 | 案例 | |
linebreak-style | 強制換行風格 | F | 案例 |
lines-around-comment | 強制注釋前后空行 | F | 案例 |
max-depth | 強制嵌套的最大深度 | 案例 | |
max-len | 強制字符串最大長度 | 案例 | |
max-lines | 強制每個文件的最大行數 | 案例 | |
max-nested-callbacks | 強制最大深度,回調可以嵌套 | 案例 | |
max-params | 強制函數最大參數值 | 案例 | |
max-statements | 強制在功能塊中允許的最大數量的語句 | 案例 | |
max-statements-per-line | 強制每行允許的最大數量的語句 | 案例 | |
multiline-ternary | 強制三元表達式換行 | 案例 | |
new-cap | 要求構造函數名稱以大寫字母開頭 | 案例 | |
new-parens | new時,沒有入參的話必須加小括號 | F | 案例 |
newline-per-chained-call | 鏈式調用后每次都需要換行符 | 案例 | |
no-array-constructor | 禁止使用數組構造器 | 案例 | |
no-bitwise | 禁止使用按位運算符 | 案例 | |
no-continue | 禁止使用continue | 案例 | |
no-inline-comments | 禁止代碼后的內聯注釋 | 案例 | |
no-lonely-if | 禁止else語句內只有if語句 | F | 案例 |
no-mixed-operators | 禁止混合二進制運算符 | 案例 | |
no-mixed-spaces-and-tabs | 禁止混合空格和制表符縮進 | R | 案例 |
no-multi-assign | 禁止使用鏈式賦值表達式 | 案例 | |
no-multi-assign | 禁止使用鏈式賦值表達式 | 案例 | |
no-multiple-empty-lines | 禁止多行空格 | F | 案例 |
no-negated-condition | 禁止否定條件 | 案例 | |
no-nested-ternary | 禁止嵌套的三元表達式 | 案例 | |
no-new-object | 禁止使用new Object() | 案例 | |
no-plusplus | 禁止使用一元運算符++和-- | 案例 | |
no-restricted-syntax | 禁止指定語法 | 案例 | |
no-tabs | 禁止所有tabs | 案例 | |
no-ternary | 禁止使用三元表達式 | 案例 | |
no-trailing-spaces | 禁止在行尾有空格 | F | 案例 |
no-underscore-dangle | 禁止在標識符中用下劃線 | 案例 | |
no-unneeded-ternary | 在簡單判斷中,禁止使用三元表達式 | F | 案例 |
no-whitespace-before-property | 禁止在屬性前加空白 | F | 案例 |
nonblock-statement-body-position | 強制單行聲明的位置 | F | 案例 |
object-curly-newline | 強制在大括號內執行一致的換行符 | F | 案例 |
object-curly-spacing | 強制在大括號內統一的空格 | F | 案例 |
object-property-newline | 強制將對象屬性放在不同的行上 | F | 案例 |
one-var | 強制變量在函數中一起聲明或多帶帶聲明 | 案例 | |
one-var-declaration-per-line | 強制單行聲明的位置 | F | 案例 |
operator-assignment | 在可能的情況下強制或禁止賦值運算符的簡寫 | F | 案例 |
operator-linebreak | 強制連接符統一的換行 | F | 案例 |
padded-blocks | 強制或禁止在塊內填充空格 | F | 案例 |
padding-line-between-statements | 強制或禁止在語句之間填充空格 | F | 案例 |
quote-props | 強制對象字面量中的屬性名雙引號 | F | 案例 |
quotes | 強制統一使用反引號,雙引號或單引號 | F | 案例 |
require-jsdoc | 需要JSDoc 注釋 | 案例 | |
semi | 強制語句分號結尾 | F | 案例 |
semi-spacing | 強制分號前后空格 | F | 案例 |
semi-style | 強制分號位置 | F | 案例 |
sort-keys | 要求對象鍵進行排序 | 案例 | |
sort-vars | 要求同一聲明塊中的變量進行排序 | 案例 | |
space-before-blocks | 強制塊區域內統一的間隔 | F | 案例 |
space-before-function-paren | 強制在Function括號之前執行統一的間距 | F | 案例 |
space-in-parens | 強制在括號內用統一的間距 | F | 案例 |
space-infix-ops | 中綴操作符周圍需要有空格 | F | 案例 |
space-unary-ops | 強制在一元操作員之前或之后有統一的間距 | F | 案例 |
spaced-comment | 強制在注釋中的//或/ *之后用統一的間距 | F | 案例 |
switch-colon-spacing | 在switch語句的冒號附近加間隔 | F | 案例 |
template-tag-spacing | 強制或禁止模板標簽與其文字之間的間距 | F | 案例 |
unicode-bom | 強制或禁止Unicode字節順序標記(BOM) | F | 案例 |
wrap-regex | 正則表達式字面量用小括號包起來 | F | 案例 |
這些規則涉及ES6(ES2015):
參數 | 描述 | 備注 | 例子 |
---|---|---|---|
arrow-body-style | 允許箭頭函數 | F | 案例 |
arrow-parens | 箭頭函數用小括號括起來 | F | 案例 |
arrow-spacing | 箭頭的前/后括號空格 | F | 案例 |
constructor-super | 在構造函數中需要super()調用 | R | 案例 |
generator-star-spacing | 在生成器函數中的*操作符周圍保持統一的間距 | F | 案例 |
no-class-assign | 禁止重新分配Class成員 | R | 案例 |
no-confusing-arrow | 在可能會與對比運算符混淆的地方禁止箭頭功能 | F | 案例 |
no-const-assign | 禁止重新分配常量變量 | R | 案例 |
no-dupe-class-members | 禁止重復的class成員 | R | 案例 |
no-duplicate-imports | 禁止重復模塊導入 | 案例 | |
no-new-symbol | 禁止在Symbol對象用new操作符 | R | 案例 |
no-restricted-imports | 通過import加載時禁止指定的模塊 | 案例 | |
no-this-before-super | 在構造函數中調用super()之前禁止用this | R | 案例 |
no-useless-computed-key | 禁止對象文字中不必要的計算屬性鍵 | F | 案例 |
no-useless-constructor | 禁止不必要的構造函數 | 案例 | |
no-useless-rename | 禁止不必要的重命名 | F | 案例 |
no-var | 用let,const代替var | F | 案例 |
object-shorthand | 強制或禁止對象文字的方法和屬性簡寫語法 | F | 案例 |
prefer-arrow-callback | 需要箭頭功能作為回調 | F | 案例 |
prefer-const | 永不改變的變量用const | F | 案例 |
prefer-destructuring | 需要從數組和/或對象中進行解構 | 案例 | |
prefer-numeric-literals | 禁止parseInt()支持二進制,八進制和十六進制文字 | F | 案例 |
prefer-rest-params | 需要reset參數 | 案例 | |
prefer-spread | 需要...操作符替代.apply() | F | 案例 |
prefer-template | 需要模板語法而不是字符串連接 | F | 案例 |
require-yield | 生成器函數必須有yield | R | 案例 |
rest-spread-spacing | 強制rest和展開運算符的間距 | F | 案例 |
sort-imports | 強制在模塊中執行排序的導入聲明 | F | 案例 |
symbol-description | 需要Symbol說明 | 案例 | |
template-curly-spacing | 強制或禁止模板字符串的嵌入式表達式周圍有空格 | F | 案例 |
yield-star-spacing | 強制或禁止的yield *中的間距 | F | 案例 |
這些規則已經被新的規則替換,懶得寫了
棄用列表
刪除舊版本ESLint的這些規則已被更新的規則所取代,懶得寫了
刪除列表
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/87085.html
摘要:簡介檢查我們寫的代碼是否滿足指定規則的靜態代碼檢查工具。作用作為代碼檢查工具,其作用主要有以下幾點統一代碼風格規則,如縮進用幾個空格是否用駝峰命名法來命名變量和函數名等。 1、簡介: eslint檢查我們寫的 JavaScript 代碼是否滿足指定規則的靜態代碼檢查工具。 ESHint 和 JSLint 也是靜態代碼檢查工具,但伴隨著發展,他們已經無法滿足需求,于是ESlint 誕...
摘要:自動化接入和升級方案通過命令行工具提供一鍵接入升級能力,同時集成到團隊腳手架中,大大降低了工程接入和維護的成本。原始代碼經過解析器的解析,在管道中逐一經過所有規則的檢查,最終檢測出所有不符合規范的代碼,并輸出為報告。 引言 代碼規范是軟件開發領域經久不衰的話題,幾乎所有工程師在開發過程中都會遇到,并或多或少會思考過這一問題。隨著前端應用的大型化和復雜化,越來越多的前端工程師和團隊開始重...
摘要:簡介是由編寫的一個可擴展每條規則獨立不內置編碼風格為理念的工具。在團隊協作中,為避免低級產出風格統一的代碼,會預先制定編碼規范。使用工具和代碼風格檢測工具,則可以輔助編碼規范執行,有效控制代碼質量。 簡介 ESLint 是由 Nicholas C. Zakas 編寫的一個可擴展、每條規則獨立、不內置編碼風格為理念的 Lint 工具。 在團隊協作中,為避免低級 Bug、產出風格統一的代碼...
摘要:簡介是一個被廣泛應用的代碼檢查工具。格式更為靈活,項目用的是后綴,即。是指擴展官方支持的規則是和簡寫,對應模塊。從這個配置中,我們可以看到沒有使用默認的解析器,而是選擇了。比如插件,就自定義了跟語法相關的規則。上面的是的簡稱。 Eslint簡介 eslint是一個被廣泛應用的javascript/jsx代碼檢查工具。 eslint配置文件可以使用js/yaml/json格式,或者在pa...
閱讀 1506·2021-11-25 09:43
閱讀 4057·2021-11-15 11:37
閱讀 3192·2021-08-17 10:13
閱讀 3503·2019-08-30 14:16
閱讀 3534·2019-08-26 18:37
閱讀 2487·2019-08-26 11:56
閱讀 1128·2019-08-26 10:42
閱讀 608·2019-08-26 10:39