項目が多かったので疲れた。。どの項目を有効にしたのかも記載した。 以下の項目はよく分かりませんでした。。
label-position
label-undefined
no-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-format
1行コメントのフォーマット"check-space"
コメントの//の後にスペースか/が来ていること → 有効"check-lowercase"
コメントの文章の最初の一文字が小文字であること → 無効"check-uppercase"
コメントの文章の最初の一文字が大文字であること → 無効
curly
if
/for
/do
/while
を波括弧で囲んでいること → 有効eofline
ファイルの最後に空行があること → 無効forin
for-inループ内では、ifステートメントを使用していること(prototype chainから来た不要なプロパティを除外するため) → 有効indent
インデント"tabs"
すべてタブでインデントされていること → 無効"spaces"
すべてスペースでインデントされていること → 有効
interface-name
インターフェース名がIで始まること → 無効jsdoc-format
jsdocのフォーマットが以下のフォーマットになっていること → 有効
各行に「*」があり、その位置が揃っていること
「*」の後にはスペースか改行が来ること(先頭行と最後の行は除く)
「*」より左にスペース以外の文字が無いこと 「/** 」で始まることlabel-position
→ 有効label-undefined
→ 有効max-file-line-count
1ファイル当たりの行数が最大値を超えていないこと → 有効。最大300行member-access
public, protected, privateのいずれかがメンバに付いていること → 有効member-ordering
クラスメンバの順序public-before-private
public→private の順で並んでいること → 有効static-before-instance
static→staticでない の順で並んでいること → 有効variables-before-functions
メンバ変数→メンバ関数 の順で並んでいること → 有効
no-any
→ 有効no-arg
arguments.calleeを使用していないこと → 有効no-bitwise
ビット演算子を使用していないこと → 有効no-conditional-assignment
do-while
,for
,if
,while
の条件部で代入していないこと → 有効no-console
consoleの指定したメソッドを呼んでいないこと。ban
のconsole限定版 → 無効// 設定方法の例 "no-console": [ true, "debug", "info", "time", "timeEnd", "trace" ],
no-consecutive-blank-lines
空行が2行以上続かないこと → 有効no-construct
String
,Number
,Boolean
のコンストラクタを呼んでいないこと → 有効no-constructor-vars
コンストラクタの仮引数にpublic
,private
が付いていないこと → 有効no-debugger
debugger
を呼んでいないこと → 有効no-duplicate-key
オブジェクトリテラルに同じKeyが複数ないこと → 有効no-duplicate-variable
同じスコープ内で同じ名前の変数を複数宣言しないこと → 有効no-shadowed-variable
shadowed variable(包含関係にある二つのスコープで同じ名前の変数を宣言すること)を使用していないこと → 有効// shadowed variableの例 var v = 1; for (int i = 0;i < 10;i++) { var v = 10; // shadowed variable }
no-empty
空のブロックが無いこと → 有効no-eval
eval関数を呼んでいないこと → 有効no-internal-module
内部moduleを使わず、namespaceを使用していること → 有効no-require-imports
require関数を使わずにimportしていること(推奨されるimportは恐らく ここで紹介されているやり方。) → 無効// 推奨されるimportの例 /// <reference path="moduleA.ts"/> import clsA = modA.clsA;
no-string-literal
obj['key']
のように文字列を使ってプロパティにアクセスしないこと → 有効no-switch-case-fall-through
switch文でfall-throughしていないこと → 有効no-trailing-comma
オブジェクトリテラルの最後のプロパティにカンマを付けないこと → 有効// これはNG contract: { no: "no", name: "name", // このカンマがtrailing-comma },
no-trailing-whitespace
行末に不要なスペースが無いこと → 有効no-unreachable
break
,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-keyword
var
を使わないこと。代わりにlet
またはconst
を使用すること → 無効no-var-requires
require
関数の返値は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"
ダブルクォートのみ使用していること → 有効
radix
parseInt
の引数に基数を渡していること → 有効semicolon
すべての文末にセミコロンがあること → 有効switch-default
switch
文にdefault
caseがあること → 有効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-strict
ES5の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ルールを有効にする