diff --git a/packages/eslint-plugin/src/rules/no-type-alias.ts b/packages/eslint-plugin/src/rules/no-type-alias.ts index f260d124133f..344d0391f281 100644 --- a/packages/eslint-plugin/src/rules/no-type-alias.ts +++ b/packages/eslint-plugin/src/rules/no-type-alias.ts @@ -239,9 +239,6 @@ export default util.createRule({ ) { reportError(type.node, type.compositionType, isTopLevel, 'Aliases'); } - } else { - // unhandled type - shouldn't happen - reportError(type.node, type.compositionType, isTopLevel, 'Unhandled'); } } diff --git a/packages/eslint-plugin/tests/rules/no-type-alias.test.ts b/packages/eslint-plugin/tests/rules/no-type-alias.test.ts index 3c3d83520e8f..b02f43378aea 100644 --- a/packages/eslint-plugin/tests/rules/no-type-alias.test.ts +++ b/packages/eslint-plugin/tests/rules/no-type-alias.test.ts @@ -7,6 +7,18 @@ const ruleTester = new RuleTester({ ruleTester.run('no-type-alias', rule, { valid: [ + { + code: 'type Foo = string | [number, number];', + options: [{ allowAliases: 'in-unions' }], + }, + { + code: 'type Foo = string & [number, number];', + options: [{ allowAliases: 'in-intersections' }], + }, + { + code: 'type Foo = string & [number, number] | [number, number, number];', + options: [{ allowAliases: 'in-unions-and-intersections' }], + }, { code: "type A = 'a' & ('b' | 'c');", options: [{ allowAliases: 'always' }],