Prefers else if statement instead of an lonely if statement. Using else if statements` is a cleaner code practice.
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:- javascript-code-style # Rules to enforce JavaScript 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