Cette page n'est pas encore disponible en français, sa traduction est en cours. Si vous avez des questions ou des retours sur notre projet de traduction actuel, n'hésitez pas à nous contacter.
Metadata
ID:typescript-code-style/no-lonely-if
Language: TypeScript
Severity: Notice
Category: Best Practices
Description
Prefer else if statement instead of an lonely if statement, it is considered cleaner code.
Non-Compliant Code Examples
if(a){;}else{if(b){;}}if(a){foo();}else{if(b){bar();}}if(a){foo();}else/* comment */{if(b){bar();}}if(a){foo();}else{/* otherwise, do the other thing */if(b){bar();}}if(a){foo();}else{if/* this comment is ok */(b){bar();}}if(a){foo();}else{if(b){bar();}/* this comment will prevent this test case from being autofixed. */}if(foo){}else{if(bar)baz();}// Not fixed; removing the braces would cause a SyntaxError.
if(foo){}else{if(bar)baz()}qux();// This is fixed because there is a semicolon after baz().
if(foo){}else{if(bar)baz();}qux();// Not fixed; removing the braces would change the semantics due to ASI.
if(foo){}else{if(bar)baz()}[1,2,3].forEach(foo);// Not fixed; removing the braces would change the semantics due to ASI.
if(foo){}else{if(bar)baz++}foo;// This is fixed because there is a semicolon after baz++
if(foo){}else{if(bar)baz++;}foo;// Not fixed; bar() would be interpreted as a template literal tag
if(a){foo();}else{if(b)bar()}`template literal`;if(a){foo();}else{if(b){bar();}elseif(c){baz();}else{qux();}}
Compliant Code Examples
if(a){;}elseif(b){;}if(a){;}else{if(b){;};}
Seamless integrations. Try Datadog Code Analysis
Datadog Code Analysis
Try this rule and analyze your code with Datadog Code Analysis
How to use this rule
1
2
rulesets:- typescript-code-style # Rules to enforce TypeScript code style.
Create a static-analysis.datadog.yml with the content above at the root of your repository
Use our free IDE Plugins or add Code Analysis scans to your CI pipelines