Skip to content

Latest commit

 

History

History
52 lines (35 loc) · 1.44 KB

no-nested-ternary.md

File metadata and controls

52 lines (35 loc) · 1.44 KB

Disallow nested ternary expressions

💼 This rule is enabled in the ✅ recommended config.

🔧 This rule is automatically fixable by the --fix CLI option.

Improved version of the no-nested-ternary ESLint rule. This rule allows cases where the nested ternary is only one level and wrapped in parens.

Fail

const foo = i > 5 ? i < 100 ? true : false : true;
const foo = i > 5 ? true : (i < 100 ? true : (i < 1000 ? true : false));

Pass

const foo = i > 5 ? (i < 100 ? true : false) : true;
const foo = i > 5 ? (i < 100 ? true : false) : (i < 100 ? true : false);

Partly fixable

This rule is only fixable when the nesting is up to one level. The rule will wrap the nested ternary in parens:

const foo = i > 5 ? i < 100 ? true : false : true

will get fixed to

const foo = i > 5 ? (i < 100 ? true : false) : true

Disabling ESLint no-nested-ternary

We recommend disabling the ESLint no-nested-ternary rule in favor of this one:

{
	"rules": {
		"no-nested-ternary": "off"
	}
}

The recommended preset that comes with this plugin already does this for you.