TypeScript
TSLint - コードの品質と一貫性を保証する
サーチ…
前書き
TSLintは、コードの静的分析を実行し、コード内のエラーおよび潜在的な問題を検出します。
基本的なtslint.jsonの設定
これは基本的なtslint.json
設定です。
-
any
-
if
/else
/for
/do
/while
文に中括弧が必要else
- 文字列に二重引用符(
"
)を使用する必要があります
{
"rules": {
"no-any": true,
"curly": true,
"quotemark": [true, "double"]
}
}
プログラミングエラーの少ない構成
このtslint.jsonの例には、より多くの入力を強制したり、一般的なエラーをキャッチしたり、バグを生成しがちな構造を混乱させたり、TypeScript Contributorsのコーディングガイドラインに従う設定が含まれています。
このルールを適用するには、ビルドプロセスにtslintを組み込み、tscでコンパイルする前にコードをチェックします。
{
"rules": {
// TypeScript Specific
"member-access": true, // Requires explicit visibility declarations for class members.
"no-any": true, // Diallows usages of any as a type declaration.
// Functionality
"label-position": true, // Only allows labels in sensible locations.
"no-bitwise": true, // Disallows bitwise operators.
"no-eval": true, // Disallows eval function invocations.
"no-null-keyword": true, // Disallows use of the null keyword literal.
"no-unsafe-finally": true, // Disallows control flow statements, such as return, continue, break and throws in finally blocks.
"no-var-keyword": true, // Disallows usage of the var keyword.
"radix": true, // Requires the radix parameter to be specified when calling parseInt.
"triple-equals": true, // Requires === and !== in place of == and !=.
"use-isnan": true, // Enforces use of the isNaN() function to check for NaN references instead of a comparison to the NaN constant.
// Style
"class-name": true, // Enforces PascalCased class and interface names.
"interface-name": [ true, "never-prefix" ], // Requires interface names to begin with a capital ‘I’
"no-angle-bracket-type-assertion": true, // Requires the use of as Type for type assertions instead of <Type>.
"one-variable-per-declaration": true, // Disallows multiple variable definitions in the same declaration statement.
"quotemark": [ true, "double", "avoid-escape" ], // Requires double quotes for string literals.
"semicolon": [ true, "always" ], // Enforces consistent semicolon usage at the end of every statement.
"variable-name": [true, "ban-keywords", "check-format", "allow-leading-underscore"] // Checks variable names for various errors. Disallows the use of certain TypeScript keywords (any, Number, number, String, string, Boolean, boolean, undefined) as variable or parameter. Allows only camelCased or UPPER_CASED variable names. Allows underscores at the beginning (only has an effect if “check-format” specified).
}
}
定義済みのルールセットをデフォルトとして使用する
tslint
は既存のルールセットを拡張することができ、デフォルトのtslint:recommended
およびtslint:latest
出荷されます。
tslint:recommended
一般的なTypeScriptプログラミングのためにtslint:recommended
ている安定した、多少意見のある規則のセットです。この構成はセミバーに従います。したがって、マイナーリリースまたはパッチリリース間で大きな変更はありません。
tslint:latest
extend tslint:TSLintのすべてのリリースで最新のルールの設定を含むように推奨され、継続的に更新されます。この設定を使用すると、コード内でlintの失敗を引き起こす新しいルールが有効になるため、マイナーリリース間で大きな変更が導入される可能性があります。 TSLintがメジャーバージョンバンプに達すると、tslint:recommendedはtslint:latestと同じに更新されます。
だから1つだけを使用することができます:
{
"extends": "tslint:recommended"
}
賢明な開始構成を持つこと。
ルールを使ってそのプリセットのルールを上書きすることができrules
。例えば、ノード開発者はno-console
をfalse
に設定することができfalse
:
{
"extends": "tslint:recommended",
"rules": {
"no-console": false
}
}
インストールとセットアップ
tslint runコマンドをインストールするには
npm install -g tslint
Tslintはファイルtslint.json
によって設定されます。デフォルト設定の実行コマンドを初期化するには
tslint --init
ファイル実行コマンドで起こりうるエラーをファイルでチェックするには
tslint filename.ts
TSLintルールのセット
Yeoman genearatorはこれらのプリセットをすべてサポートしており、以下の拡張も可能です: