- @typescript-eslint/adjacent-overload-signatures
- @typescript-eslint/await-thenable
- 不允許對不是“Thenable”物件的值使用await關鍵字,相反對“Thenable”物件必須使用await,例如對Promise物件。
- @typescript-eslint/array-type
- 定義陣列時,使用統一的樣式,如都使用T[]或都使用Array。
"@typescript-eslint/array-type": [
"error",
{
// array | array-simple | generic
"default": "array"
}
]
- default的值設定為array時,統一使用T[];設定generic時,統一使用Array,設定為array-simple時,簡單型別使用T[],其它型別使用Array
- @typescript-eslint/ban-ts-comment
- 不允許使用
@ts-<directional>
格式的註釋,或要求在註釋後進行補充說明
- @typescript-eslint/ban-tslint-comment
- 不允許使用
//tslint:<rule-flag>
格式的註釋
- @typescript-eslint/ban-types
- 不允許使用某些型別,例如型別小寫保持一致,使用string,boolean,number等等,而不是String,Boolean,Number。
- @typescript-eslint/brace-style
- 要求程式碼塊的左大括號與其對應的語句或宣告位於同一行。
- @typescript-eslint/class-literal-property-style
- @typescript-eslint/comma-dangle
- 允許或禁止使用尾隨逗號,類的最後一個屬性或者陣列最後一個元素禁止尾隨逗號
"@typescript-eslint/comma-dangle": [
"error",
{
// never | always
"arrays": "never",
"objects": "never",
"imports": "never",
"exports": "never",
"functions": "never"
}
]
- 共有陣列arrays,物件objects,匯入imports,匯出exports和函式functions五各型別支援配置,值設定為never則是禁止尾隨逗號,設定為always則是允許尾隨逗號。
- @typescript-eslint/comma-spacing
- 強制逗號前後的空格風格保持一致,例如強制要求逗號前不加空格,逗號後必須新增空格
"@typescript-eslint/comma-spacing": [
"error",
{
"before": false,
"after": true
}
]
- @typescript-eslint/consistent-type-assertions
- @typescript-eslint/default-param-last
- @typescript-eslint/explicit-member-accessibility
- @typescript-eslint/func-call-spacing
"@typescript-eslint/func-call-spacing": [
"error",
"never"
]
- 設定為never時,函式名後面禁止新增空格,設定為always時,函式名後面允許新增空格
- @typescript-eslint/init-declarations
"@typescript-eslint/init-declarations": [
"error",
"always"
]
- 設定為always時,宣告變數必須初始化,設定為never時,宣告變數可以不初始化。
- @typescript-eslint/keyword-spacing
- 強制在關鍵字之前和關鍵字之後保持一致的空格風格,例如在關鍵字前後都新增空格
"@typescript-eslint/keyword-spacing": [
"error",
{
"before": true,
"after": true
}
]
- @typescript-eslint/lines-between-class-members
- 禁止或者要求類成員之間有空行分隔,always為允許有空行,never為不允許有空行,如下設定空行後不加空行,屬性和方法之前新增空行。
"@typescript-eslint/lines-between-class-members": [
"error",
{
enforce: [
{
blankLine: "never",
prev: "field",
next: "method"
}
]
}
]
- @typescript-eslint/member-delimiter-style
- 要求介面和型別別名中的成員之間使用特定的分隔符,支援定義的分隔符有三種:分號、逗號、無分隔符
- @typescript-eslint/member-ordering
- 要求類、介面和型別字面量中成員的排序方式保持一致的風格
- @typescript-eslint/naming-convention
- 強制識別符號使用一致的命名風格。例如類名使用大駝峰,函式使用小駝峰。
- @typescript-eslint/no-array-constructor
- @typescript-eslint/no-base-to-string
- 要求當一個物件在字串化時提供了有用的資訊,才能呼叫“toString()”方法
- @typescript-eslint/no-confusing-non-null-assertion
- @typescript-eslint/no-confusing-void-expression
- @typescript-eslint/no-dupe-class-members
- 不允許重複的類成員,即已經宣告的成員屬性,不允許重複再宣告一次。
- @typescript-eslint/no-duplicate-imports
- 禁止重複的模組匯入,即已經匯入的模組,不允許再再次匯入。
- @typescript-eslint/no-empty-function
- 不允許使用空函式,支援的白名單配置包括函式,箭頭函式,方法,構造方法等等,配置如下
"@typescript-eslint/no-empty-function": [
"error",
{
"allow": [
"functions",
"arrowFunctions",
"generatorFunctions",
"methods",
"generatorMethods",
"getters",
"setters",
"constructors",
"asyncFunctions",
"asyncMethods"
]
}
]
- @typescript-eslint/no-empty-interface
- @typescript-eslint/no-extraneous-class
- @typescript-eslint/no-extra-non-null-assertion
- @typescript-eslint/no-extra-parens
- @typescript-eslint/no-extra-semi
- @typescript-eslint/no-floating-promises
- 要求正確處理Promise表示式,例如Promise一定要處理異常情況
- @typescript-eslint/no-implied-eval
- @typescript-eslint/no-inferrable-types
- 不允許對初始化為數字、字串或布林值的變數或引數進行顯式型別宣告
- @typescript-eslint/no-invalid-this
- 禁止在this的值為undefined的上下文中使用this
- @typescript-eslint/no-invalid-void-type
- @typescript-eslint/no-loss-of-precision
- @typescript-eslint/no-magic-numbers
- 禁止使用魔法數字。但有些情況下我們又需要直接使用數字,例如定義列舉時,在陣列中根據索引取資料時,或者直接定義某些值不是魔法數字,示例如下
"@typescript-eslint/no-magic-numbers": [
"off",
{
"ignoreEnums": true,
"ignoreArrayIndexes": true,
"ignoreNumericLiteralTypes": true,
"ignore": [
-1,
0,
1
]
}
]
- @typescript-eslint/no-misused-new
- 要求正確地定義“new”和“constructor”
- @typescript-eslint/no-misused-promises
- @typescript-eslint/no-non-null-asserted-optional-chain
- @typescript-eslint/no-non-null-assertion
- @typescript-eslint/no-redeclare
- 禁止變數重複宣告,即前面宣告過的變數,不允許再次宣告。
- @typescript-eslint/no-require-imports
- @typescript-eslint/no-restricted-syntax
- 不允許使用指定的(即使用者在規則中定義的)語法。例如不允許直接使用console.log列印日誌,而是使用我們封裝好的LogUtil列印日誌
"@typescript-eslint/no-restricted-syntax": [
"error",
{
"selector": "CallExpression[callee.name='console.log']",
"message": "不要直接使用console列印日誌,請使用LogUtil"
}
]
- @typescript-eslint/no-shadow
- @typescript-eslint/no-throw-literal
- @typescript-eslint/no-unnecessary-boolean-literal-compare"
- @typescript-eslint/no-unnecessary-condition
- 不允許使用型別始終為真或始終為假的表示式作為判斷條件
- @typescript-eslint/no-unnecessary-qualifier