1. ホーム
  2. angular

TSLintの設定ルール

2022-02-24 18:41:20
<パス

TSLintコアルール

原文のままです。 https://palantir.github.io/tslint/rules/

Lintルールは、TypeScriptソースコードの構文チェックとセマンティックチェックのためのロジックをコード化したものである。

TypeScript固有のもの

TypeScriptの機能に関連するエラーを検出するルールです。

adjacent-overload-signatures - 関数のオーバーロードが連続であることを強制します。

ban-ts-ignore - "// @ts-ignore" コメントを使用することを禁止します。

ban-types - 特定の型の使用を禁止します。対応する実行時オブジェクトの使用は禁止しません。

member-access - クラスのメンバに対して明示的な可視性宣言を要求します。

member-ordering - メンバーの順序付けを強制します。

no-any - 型宣言として any を使用することを禁止します。

no-empty-interface - 空のインターフェイスを禁止する。



no-import-side-effect - 副作用のある import 文を避ける。

no-inferrable-types - 数値、文字列、またはブール値で初期化された変数またはパラメーターに対する明示的な型宣言を無効にします。

no-internal-module - 内部モジュールの使用を禁止する。



no-magic-numbers - 変数代入以外の定数値の使用を不許可にします。許可される値のリストが指定されていない場合、デフォルトで -1、0、および 1 が許可されます。

no-namespace - 内部モジュールおよびネームスペースの使用を無効にします。

no-non-null-assertion - !ポストフィックス演算子を使用した non-null アサーションを無効にします。



no-parameter-reassignment - パラメータの再割り当てを禁止する。



no-reference - /// <reference path=> インポートを禁止します (代わりに ES6 形式のインポートを使用します)。

タイプ情報を必要とする



no-unnecessary-type-assertion - 型アサーションによって式の型が変更されない場合に警告を表示します。

no-var-requirements - import 文以外の require 文の使用を禁止します。



only-arrow-functions - 従来の(矢印でない)関数式を許可しない。



prefer-for-of - イテレートしている配列にアクセスするためにのみインデックスを使用する場合、標準の 'for' ループよりも 'for-of' ループを推奨します。



タイプ情報を必要とする



promise-function-async - プロミスを返す関数やメソッドは、非同期とマークされる必要があります。

typedef - 型定義が存在することを要求します。

typedef-whitespace - 型定義に空白を必要とするかしないか。

unified-signatures - ユニオンまたはオプション/レストパラメータを使用して 1 つに統合できる 2 つのオーバーロードに対して警告を発します。



機能性



このルールは、JSのプログラミングでよくあるエラーや、バグを発生させやすい混乱した構造を捕捉します。

タイプ情報を必要とする



await-promise - Promiseでない待ち受け値に対して警告を発する。



ban-comma-operator - カンマ演算子の使用を不許可にします。



禁止 - 特定の関数またはグローバル・メソッドの使用を禁止します。

curly - if/for/do/while 文の中括弧を強制的に削除します。



forin - for ... in 文が if 文でフィルタリングされることを要求します。



function-constructor - 組み込みのFunctionコンストラクタを使用しないようにします。



import-blacklist - import および require による指定されたモジュールのインポート、または指定されたモジュールの特定の名前付きエクスポートのインポートを禁止します。



label-position - 適切な場所にあるラベルのみを許可します。



no-arg - arguments.calleeの使用を不許可にします。



no-bitwise - ビット演算子を使用しないようにします。



no-conditional-assignment - 条件式でのあらゆる種類の代入を禁止する。



no-console - 指定されたコンソールメソッドの使用を禁止します。



no-construct - String、Number、Booleanのコンストラクタへのアクセスを禁止します。



no-debugger - デバッガ文の使用を禁止します。



no-duplicate-super - コンストラクタ内に 'super()' が 2 回出現した場合に警告します。



no-duplicate-switch-case - switchステートメントでケースが重複しないようにします。



no-duplicate-variable - 同じブロックスコープでの重複した変数宣言を禁止します。



no-dynamic-delete - 計算されたキー式で delete 演算子を使用することを禁止します。



no-empty - 空のブロックを許可しない。



no-eval - eval関数の呼び出しを無効にします。

タイプ情報を必要とする



no-floating-promises - 関数から返されるプロミスは適切に処理されなければなりません。



タイプ情報を必要とする



no-for-in-array - for-inループによる配列への反復処理を無効にします。



no-implicit-dependencies - プロジェクトの package.json に依存関係として記載されていないモジュールのインポートを禁止します。

タイプ情報を必要とする



no-inferred-empty-object-type - 関数およびコンストラクタ呼び出しサイトでの{}(空のオブジェクト型)の型推論を無効にする。



no-invalid-template-strings - テンプレート以外の文字列で${を使用した場合に警告を表示します。



no-invalid-this - クラスの外側で this キーワードを使用しないようにします。

no-misused-new - インターフェイスのコンストラクタやクラスのnewを定義しようとする見かけ上の試みに警告を発します。

no-null-keyword - ヌルキーワードリテラルの使用を不許可にします。

no-object-literal-type-assertion - オブジェクト・リテラルをタイプ・アサーション式に使用することを禁止します。

no-return-await - 不要な戻り待ちを禁止します。



no-shadowed-variable - 変数宣言のシャドウイングを無効にする。



no-sparse-arrays - 配列リテラルに欠落した要素が含まれないようにします。

no-string-literal - 不必要な文字列リテラルのプロパティアクセスを禁止します。 Allows obj["prop-erty"] (can't be) (通常のプロパティアクセスはできません。). obj["property"]を不許可にします(obj.propertyであるべきです)。

no-string-throw - プレーンの文字列または文字列の連結を投げるフラグ。



no-submodule-imports - 任意のサブモジュールのインポートを禁止します。



no-switch-case-fall-through - case文のフォールスルーを無効にします。



no-this-assignment - thisへの不要な参照を禁止します。

タイプ情報を必要とする



no-unbound-method - メソッドがメソッド呼び出しの外で使用された場合に警告します。



no-unnecessary-class - 厳密に必要でないクラスを許可しないようにします。

タイプ情報を必要とする



no-unsafe-any - 型 'any' の式を動的に使用するときに警告します。型キャストとテストは許可される。すべての値で動作する式 ("" + x など) は許可されます。



no-unsafe-finally - finallyブロックにおけるreturn、continue、break、throwsなどの制御フロー文の使用を禁止します。



no-unused-expression - 未使用の式文を許可しない。

タイプ情報を必要とする



no-unused-variable - 未使用のインポート、変数、関数、およびプライベート・クラスのメンバーを許可しない。tscの - noUnusedParameters および -noUnusedLocals オプションと似ているが、コードのコンパイルを妨げない。



タイプ情報を必要とする



no-use-before-declare - 宣言前の変数の使用を許可しない。

no-var-keyword - var キーワードを使用しないようにします。



タイプ情報を必要とする



no-void-expression - ステートメント位置に void 型の式を表示することを要求します。



prefer-conditional-expression - if文の各分岐で同じものに代入するのではなく、条件式を使用することを推奨します。

prefer-object-spread - 適切な場合には、Object.assign() よりも ES2018 object spread 演算子を強制的に使用するようにします。



radix - parseInt を呼び出すときに radix パラメータを指定する必要があります。



タイプ情報を必要とする



restrict-plus-operands - 2つの変数を追加する場合、オペランドは数値型または文字列型の両方である必要があります。

型情報を必要とする



strict-boolean-expressions - boolean 式で許可される型を制限します。デフォルトでは boolean のみが許可されます。



の引数は、! &&, および || 演算子の引数



条件式における条件(cond ? x : y)



if文、for文、while文、do-while文の条件です。

タイプ情報を必要とする



strict-type-predicates - 常に真または常に偽の型述語を警告します。定数に対する'typeof'比較(例 'typeof foo === "string"' )や、'null '/'undefined' に対する等式比較で機能します。(TypeScriptでは'1 === 2'の比較はできないが、'1 === undefined ' は例外となる)。instanceof'はまだ動作しない。x.y'が常に真である'if (x.y)'に対しては警告を発しない。これについては、strict-boolean- expressionsを参照してください。このルールは strictNullChecks が正しく動作する必要があります。



switch-default - すべての switch 文で、デフォルトのケースを要求します。



triple-equals - == と ! = の代わりに === と ! = が必要です。



typeof-compare - typeofの結果が正しい文字列値と比較されることを確認する。



unnecessary-constructor - 空のコンストラクタは冗長であるため、これを防止します。

タイプ情報を必要とする



use-default-type-parameter - 明示的に指定された型引数が、その型パラメータの既定値であるかどうかを警告します。



use-isnan - NaN定数との比較の代わりに、isNaN()関数を使用してNaN参照をチェックするように強制します。



保守性



このルールにより、コードのメンテナンスが容易になります。

cyclomatic-complexity - サイクロマンティックな複雑さの閾値を強制的に設定します。



タイプ情報を必要とする



deprecation - 非推奨のAPIが使用されている場合に警告を表示します。

eofline - ファイルが改行で終わることを確認します。

indent - タブまたはスペースでインデントを強制します。

linebreak-style - 一貫した改行スタイルを強制します。



max-classes-per-file - ファイルには、指定された数を超えるクラスが含まれないようにします。



max-file-line-count - ファイルを一定の行数以下に保つことを要求します。



max-line-length - 行の最大長が一定以下であることを要求します。



no-default-export - ES6 スタイルのモジュールで、デフォルトのエクスポートを無効にします。



no-default-import - 特定の ES6 スタイルのモジュールからデフォルトのメンバーをインポートしないようにします。



no-duplicate-imports - 同じモジュールからの複数の import 文を禁止します。

no-mergeable-namespace - 同じファイル内でマージ可能な名前空間を禁止します。



no-require-imports - require() の呼び出しを無効にします。



object-literal-sort-keys - オブジェクト・リテラル内のキーの順序をチェックします。デフォルトのアルファベット順を使用する場合は、追加の空白行を使用して、各グループ内の要素をアルファベット順に保ちながらオブジェクト・プロパティをグループ化することができます。デフォルトのアルファベット順を使用する場合、追加の空白行を使用して、各グループ内の要素をアルファベット順に保ちながら、オブジェクト・プロパティをグループ化することができます。

prefer-const - 変数宣言では、可能であれば let や var の代わりに const を使用することを要求します。

型情報を必要とする



prefer-readonly - プライベート変数がコンストラクタの外部で変更されない場合は readonly としてマークされることを要求します。

trailing-comma - 配列およびオブジェクトのリテラル、デストラクチャリングの割り当て、関数の型付け、名前付きインポートおよびエクスポート、関数のパラメータで末尾のカンマを要求するかしないかを指定します。



スタイル



このルールにより、コードベース全体で一貫したスタイルが実現されます。

align - 垂直方向のアライメントを強制します。

array-type - 配列には 'T[]' または 'Array' のいずれかを使用する必要があります。

arrow-parens - 矢印関数定義のパラメータを括弧で囲むことが必要です。

arrow-return-shorthand - () => { return x; } を () => x に変換することを提案する。



binary-expression-operand-order - 二項式では、可能であればリテラルは常に右辺にあるべきです。たとえば、「1 + x」よりも「x + 1」の方が望ましい。

callable-types - 呼び出しシグネチャだけを持つインターフェースやリテラルの型は、関数型として書くことができます。



class-name - PascalCasedのクラス名とインターフェース名を強制的に使用します。

comment-format - 1行コメントの書式規則を適用します。



comment-type - 限定されたコメントタイプのセットを許可します。



タイプ情報を必要とする



completed-docs - 記入すべき重要な項目のための JSDoc コメントを強制的に実行します。



encoding - UTF-8ファイルエンコーディングを強制的に適用します。

file-header - 正規表現にマッチした特定のヘッダーコメントをすべてのファイルに強制します。



file-name-casing - 一貫したファイル命名規則を強制的に適用します。



import-spacing - インポート文のキーワードの間隔が適切になるようにします。



increment-decrement - 明示的な += 1 または -= 1 演算子を使用することを強制します。

interface-name - インターフェース名は大文字の 'I' で始まる必要があります。

interface-over-type-literal - インターフェース宣言をタイプリテラル (type T = { ... }) よりも優先する。



jsdoc-format - JSDocコメントの基本的な書式規則を強制する。

タイプ情報を必要とする



match-default-export-name - デフォルトのインポートが、インポートする宣言と同じ名前であることを要求します。



newline-before-return - ブロック内で唯一の行でない場合、戻る前の空行を強制的に削除します。



newline-per-chained-call - 連鎖したメソッドコールを分割して別の行にすることを要求します。



new-parens - new キーワードでコンストラクタを呼び出すときに括弧を必要とします。

no-angle-bracket-type-assertion - 型アサーションに .types の代わりに as Type を使用することを要求しています。

タイプ情報を必要とする



no-boolean-literal-compare - x === trueのようなブール型リテラルとの比較で警告します。

no-consecutive-blank-lines - 1行以上の空白行を許可しない。

no-irregular-whitespace - 文字列やコメントを含む、ファイル内の不規則な空白を許可しないようにします。

no-parameter-properties - クラス・コンストラクタのパラメータ・プロパティを許可しない。

no-redundant-jsdoc - TypeScriptの機能を重複させるJSDocを禁止します。

no-reference-import - とにかくfooをインポートする場合はやめてください。

no-trailing-whitespace - 行末の空白を無効にします。



no-unnecessary-callback-wrapper - x => f(x) を f だけに置き換えます。より多くのケースをキャッチするには、 only-arrow-functions と arrow-return-shorthand も有効にします。

no-unnecessary-initializer - 'var'/'let' ステートメントまたは destructuring initializer が 'undefined' に初期化されることを禁じます。

タイプ情報を必要とする



no-unnecessary-qualifier - 名前空間修飾子 (A.x) が不要である場合に警告します。



number-literal-format - 小数点リテラルが単なる '.' ではなく '0.' で始まり、末尾の '0' で終わらないことを確認します。

object-literal-key-quotes - 一貫したオブジェクト リテラル プロパティの引用スタイルを強制します。

object-literal-shorthand - ES6 オブジェクト リテラルの省略記法の使用を強制または無効にします。

one-line - 指定されたトークンが、その前にある式と同じ行にあることを要求します。



one-variable-per-declaration - 同じ宣言文での複数の変数定義を禁止します。

ordered-imports - import 文をアルファベット順に並べ、グループ化することを要求します。



prefer-function-over-method - 'this' を使用しないクラスメソッドに対して警告を発します。

prefer-method-signature - foo(): void を foo より優先します。() => void をインターフェースや型において優先します。



prefer-switch - 単純な === 比較を行う if 文より switch 文を優先します。



prefer-template - 文字列リテラルの連結よりも、テンプレート式を優先します。

prefer-while - 初期化子やインクリメンターのない for ループの代わりに while ループを優先します。

quotemark - 文字列リテラルに引用符を使用するように強制します。



タイプ情報を必要とする



return-undefined - void関数ではreturn;を、値を返す関数ではreturn undefined;を優先してください。

セミコロン - すべての文の終わりで、一貫したセミコロンの使用を強制します。

space-before-function-paren - 関数括弧の前にスペースを入れることを要求する、または禁止する。

space-within-parents - 括弧内のスペースを強制するか、許可しないかを設定します。空白の括弧 () は常に許可されます。

switch-final-break - switch文の最終節がbreak;で終わっているかどうかをチェックします。

type-literal-delimiter - 型リテラルのメンバがセミコロンで区切られていることを確認します。



タイプ情報が必要です



unnecessary-bind - 関数への不要な、あるいは誤解を招くようなスコープバインディングを防ぎます。



variable-name - 変数名にさまざまなエラーがないかどうかをチェックします。

whitespace - 空白のスタイル規則を適用します。