diff --git a/packages/eslint-plugin/src/rules/no-extra-parens.ts b/packages/eslint-plugin/src/rules/no-extra-parens.ts index 7dd71ad583b..1b12e38e6ec 100644 --- a/packages/eslint-plugin/src/rules/no-extra-parens.ts +++ b/packages/eslint-plugin/src/rules/no-extra-parens.ts @@ -200,7 +200,7 @@ export default util.createRule({ } }, SwitchCase(node) { - if (node.test.type !== AST_NODE_TYPES.TSAsExpression) { + if (node.test && node.test.type !== AST_NODE_TYPES.TSAsExpression) { return rules.SwitchCase(node); } }, diff --git a/packages/eslint-plugin/tests/rules/no-extra-parens.test.ts b/packages/eslint-plugin/tests/rules/no-extra-parens.test.ts index 64e93de21c3..6d84149efb8 100644 --- a/packages/eslint-plugin/tests/rules/no-extra-parens.test.ts +++ b/packages/eslint-plugin/tests/rules/no-extra-parens.test.ts @@ -146,7 +146,7 @@ throw 1; const x = !(1 as 1); const x = (1 as 1)++; function *x() { yield (1 as 1); yield 1; } -switch (foo) { case 1: case (2 as 2): } +switch (foo) { case 1: case (2 as 2): break; default: break; } `, options: [ 'all', diff --git a/packages/typescript-estree/src/ts-estree/ts-estree.ts b/packages/typescript-estree/src/ts-estree/ts-estree.ts index ec7640b56b2..6bb54c5a775 100644 --- a/packages/typescript-estree/src/ts-estree/ts-estree.ts +++ b/packages/typescript-estree/src/ts-estree/ts-estree.ts @@ -928,7 +928,7 @@ export interface Super extends BaseNode { export interface SwitchCase extends BaseNode { type: AST_NODE_TYPES.SwitchCase; - test: Expression; + test: Expression | null; consequent: Statement[]; }