2017-03-17 2 views
2

私はVSコード用にTSLint拡張機能を使用しています。私は[tslint] misplaced 'else' (one-line)警告の束を得た。例えば、以下のコードサンプルでは、​​リンターは他の単語を強調し、同じ警告を与える:typescript - tslintが 'else'(one-line)に置き換えられました

コード:

if (user.isAdmin) { 
    this.uiRouter.stateService.go('app.admin'); 
} 
else { 
    this.sharedVariables.user = user; 
    this.navigateByUserType(user); 
} 

このコードの問題は何ですか?

+0

エラーメッセージには、問題の内容が正確に記載されています。ティオはそれについて何を理解しているのですか? –

+0

Google [tslint]は 'else'(1行)を間違って配置しました。 1つの答えは[docページから](https://palantir.github.io/tslint/rules/one-line/)です。最初の行に記載されています。*指定されたトークンが式と同じ行にあることが必要です*最初の結果は[このSOの質問](http://stackoverflow.com/questions/35261282/tslint-one-line-rule-misplaced-else)で、これも明確な答えが得られます。 –

+1

兄@torazaburoいつもそんなに簡単ではありません。オンラインでは、すべての条件ベースのコードを1行で表します。 –

答えて

7

tslint one-line rule documentation

からルール:1行

は彼らの前 式と同じライン上にある指定されたトークンが必要です。

check-elseというトークンが指定されたone-lineというtslintルールが有効です。これにより、前の末尾の中カッコと同じ行にない文がすべてelseであることを警告するようにtslintに指示します。 if文の末尾の中括弧と同じ行にelse文を移動する場合、tslint規則を満たす必要があります。

if (user.isAdmin) { 
    this.uiRouter.stateService.go('app.admin'); 
} else { 
    this.sharedVariables.user = user; 
    this.navigateByUserType(user); 
} 
関連する問題