項目が多かったので疲れた。。どの項目を有効にしたのかも記載した。 以下の項目はよく分かりませんでした。。
label-positionlabel-undefinedno-any
Lintオプションの意味
align縦方向の揃え方"parameters"関数定義の仮引数の開始位置が揃っていること → 無効``` // これはNG export function createPostSettings(url: string, urlParameters: any, query: any, dataParams: any, options: JQueryAjaxSettings): JQueryAjaxSettings { ``` ``` // これはOK export function createPostSettings(url:string, urlParameters:any, query:any, dataParams:any, options:JQueryAjaxSettings):JQueryAjaxSettings { ```"arguments"関数呼び出しの引数を複数行にした場合引数の開始位置が揃っていること → 無効``` // これはNG var ajaxCallTimeout = setTimeout(() => { ... }, settings.API_TIMEOUT); ``` ``` // これはOK var ajaxCallTimeout = setTimeout( () => { ... }, settings.API_TIMEOUT); ```"statements"文の開始位置がブロック内で揃っていること → 有効
ban指定した名前のオブジェクトの指定したメソッドが呼ばれていないこと → 無効// 設定方法の例 "ban": [true, ["_", "extend"], ["_", "isNull"], ["_", "isDefined"] ],class-nameクラス名とインターフェース名にパスカルケースを使用していること → 有効comment-format1行コメントのフォーマット"check-space"コメントの//の後にスペースか/が来ていること → 有効"check-lowercase"コメントの文章の最初の一文字が小文字であること → 無効"check-uppercase"コメントの文章の最初の一文字が大文字であること → 無効
curlyif/for/do/whileを波括弧で囲んでいること → 有効eoflineファイルの最後に空行があること → 無効forinfor-inループ内では、ifステートメントを使用していること(prototype chainから来た不要なプロパティを除外するため) → 有効indentインデント"tabs"すべてタブでインデントされていること → 無効"spaces"すべてスペースでインデントされていること → 有効
interface-nameインターフェース名がIで始まること → 無効jsdoc-formatjsdocのフォーマットが以下のフォーマットになっていること → 有効
各行に「*」があり、その位置が揃っていること
「*」の後にはスペースか改行が来ること(先頭行と最後の行は除く)
「*」より左にスペース以外の文字が無いこと 「/** 」で始まることlabel-position→ 有効label-undefined→ 有効max-file-line-count1ファイル当たりの行数が最大値を超えていないこと → 有効。最大300行member-accesspublic, protected, privateのいずれかがメンバに付いていること → 有効member-orderingクラスメンバの順序public-before-privatepublic→private の順で並んでいること → 有効static-before-instancestatic→staticでない の順で並んでいること → 有効variables-before-functionsメンバ変数→メンバ関数 の順で並んでいること → 有効
no-any→ 有効no-argarguments.calleeを使用していないこと → 有効no-bitwiseビット演算子を使用していないこと → 有効no-conditional-assignmentdo-while,for,if,whileの条件部で代入していないこと → 有効no-consoleconsoleの指定したメソッドを呼んでいないこと。banのconsole限定版 → 無効// 設定方法の例 "no-console": [ true, "debug", "info", "time", "timeEnd", "trace" ],no-consecutive-blank-lines空行が2行以上続かないこと → 有効no-constructString,Number,Booleanのコンストラクタを呼んでいないこと → 有効no-constructor-varsコンストラクタの仮引数にpublic,privateが付いていないこと → 有効no-debuggerdebuggerを呼んでいないこと → 有効no-duplicate-keyオブジェクトリテラルに同じKeyが複数ないこと → 有効no-duplicate-variable同じスコープ内で同じ名前の変数を複数宣言しないこと → 有効no-shadowed-variableshadowed variable(包含関係にある二つのスコープで同じ名前の変数を宣言すること)を使用していないこと → 有効// shadowed variableの例 var v = 1; for (int i = 0;i < 10;i++) { var v = 10; // shadowed variable }no-empty空のブロックが無いこと → 有効no-evaleval関数を呼んでいないこと → 有効no-internal-module内部moduleを使わず、namespaceを使用していること → 有効no-require-importsrequire関数を使わずにimportしていること(推奨されるimportは恐らく ここで紹介されているやり方。) → 無効// 推奨されるimportの例 /// <reference path="moduleA.ts"/> import clsA = modA.clsA;no-string-literalobj['key']のように文字列を使ってプロパティにアクセスしないこと → 有効no-switch-case-fall-throughswitch文でfall-throughしていないこと → 有効no-trailing-commaオブジェクトリテラルの最後のプロパティにカンマを付けないこと → 有効// これはNG contract: { no: "no", name: "name", // このカンマがtrailing-comma },no-trailing-whitespace行末に不要なスペースが無いこと → 有効no-unreachablebreak,catch,throw,returnの後に到達出来ないコードが無いこと → 有効no-unused-expression代入も関数呼び出しもされていない式が無いこと → 有効// これはNG constructor(params?: Params) { super(params); params; // 代入も関数呼び出しもされていない式 }no-unused-variable使われていないimportしたモジュール, 変数, 関数 クラスのプライベートメンバが無いこと → 有効"check-parameters"使われていない関数やコンストラクタの引数が無いこと。 → 無効
check-parametersは実験的なもので誤動作する場合があるので注意。
no-use-before-declare変数を宣言前に使用しないこと → 有効no-var-keywordvarを使わないこと。代わりにletまたはconstを使用すること → 無効no-var-requiresrequire関数の返値はimportで受け、varで受けないこと → 有効// これはNG var module = require("module")one-line特定の予約語が同じ行に並んでいること → 有効"check-catch"tryの閉じ括弧と同じ行にcatchがあること → 有効"check-else"ifの閉じ括弧と同じ行にelseがあること → 有効"check-open-brace"ifなど波括弧が続く予約語は、予約語と波括弧が同じ行にあること → 有効"check-whitespace"特定の予約語の前にスペースがあること → 有効
quotemark文字列リテラルを定義するときにシングル・ダブルクォートのどちらかのみ使用していること。どちらに統一するかはオプションで指定する。 → 有効"single"シングルクォートのみ使用していること → 無効"double"ダブルクォートのみ使用していること → 有効
radixparseIntの引数に基数を渡していること → 有効semicolonすべての文末にセミコロンがあること → 有効switch-defaultswitch文にdefaultcaseがあること → 有効triple-equals==,!=は使用せず===,!==を使用していること → 有効typedef型が定義されていること。オプションは以下。 → 有効"call-signature"返値の型が指定されていること(voidでも省略しないこと) → 無効"parameter"関数定義の仮引数に型が指定されていること → 有効"property-declaration"interfaceのプロパティに返値の型が指定されていること → 有効"variable-declaration"変数に型が指定されていること → 有効"member-variable-declaration"クラスのメンバ変数の型が指定されていること → 有効
typedef-whitespace型定義のスペース。チェックの内容は以下のオプションにspaceまたはnonspaceを指定することで変化する。それぞれ各場所で型を指定する時の:の前にスペースがある、または無いことをチェックする → 有効"call-signature"関数の返値の型の前の:の前にスペースがある、または無いこと → nonspaceを指定"index-signature"インデックスシグニチャの型の前の:の前にスペースがある、または無いこと → nonspaceを指定// インデックスシグニチャの例。index:numberの:の前をチェックする var v : { [index:number] :number; } = {};"parameter"関数の仮引数の型の前の:の前にスペースがある、または無いこと → nonspaceを指定"property-declaration"クラスのプロパティの型の前の:の前にスペースがある、または無いこと → nonspaceを指定"variable-declaration"変数の型の前の:の前にスペースがある、または無いこと → nonspaceを指定
use-strictES5のstrict modeを使用していること。strict modeについて。check-moduleすべてのトップレベルmoduleがstrict modeを使用していること。トップレベルとはグローバルスコープと同義。 → 有効check-functionすべてのトップレベル関数がstrict modeを使用していること → 有効
variable-nameシンボルがキャメルケースまたはアッパースネークケースであること → 有効"allow-leading-underscore"_で始まる変数名を許可するオプション → 無効
whitespace指定した位置にスペースがあること。以下のオプションで位置を指定する。 → 有効"check-branch"if,else,for,whileの後にスペースがあること → 有効"check-decl"変数宣言の行の=の前後にスペースがあること → 有効"check-operator"演算子の前後にスペースがあること → 有効"check-module"import,export文にスペースがあること → 有効"check-separator",,;の後にスペースがあること → 有効"check-type"変数の型指定の前にスペースがあること → 有効"check-typecast"型キャストの型とキャストされる変数の間にスペースがあること → 有効
コード内でLintを無効/有効にする
/* tslint:disable */これ以降のコードですべてのLintルールを無効にする/* tslint:enable */これ以降のコードですべてのLintルールを有効にする/* tslint:disable:rule1 rule2 rule3... */これ以降のコードで指定したLintルールを無効にする/* tslint:enable:rule1 rule2 rule3... */これ以降のコードで指定したLintルールを有効にする