From b70c283319f6d504439c50f444e17c54b20b5581 Mon Sep 17 00:00:00 2001 From: rhysd Date: Sat, 30 Mar 2019 11:46:14 +0900 Subject: [PATCH] fix(eslint-plugin): no-object-literal-type-assertion: fix `as const` is reported --- .../src/rules/no-object-literal-type-assertion.ts | 6 ++++++ .../tests/rules/no-object-literal-type-assertion.test.ts | 2 ++ 2 files changed, 8 insertions(+) diff --git a/packages/eslint-plugin/src/rules/no-object-literal-type-assertion.ts b/packages/eslint-plugin/src/rules/no-object-literal-type-assertion.ts index 55c91ac6e512..d83620133217 100644 --- a/packages/eslint-plugin/src/rules/no-object-literal-type-assertion.ts +++ b/packages/eslint-plugin/src/rules/no-object-literal-type-assertion.ts @@ -50,6 +50,12 @@ export default util.createRule({ case AST_NODE_TYPES.TSAnyKeyword: case AST_NODE_TYPES.TSUnknownKeyword: return false; + case AST_NODE_TYPES.TSTypeReference: + // Ignore `as const` and `` (#166) + return ( + node.typeName.type === AST_NODE_TYPES.Identifier && + node.typeName.name !== 'const' + ); default: return true; } diff --git a/packages/eslint-plugin/tests/rules/no-object-literal-type-assertion.test.ts b/packages/eslint-plugin/tests/rules/no-object-literal-type-assertion.test.ts index e25e96de6940..336df4c29a1b 100644 --- a/packages/eslint-plugin/tests/rules/no-object-literal-type-assertion.test.ts +++ b/packages/eslint-plugin/tests/rules/no-object-literal-type-assertion.test.ts @@ -26,6 +26,8 @@ ruleTester.run('no-object-literal-type-assertion', rule, { // Allow cast to 'unknown' `const foo = {} as unknown;`, `const foo = {};`, + `const foo = {} as const;`, + `const foo = {};`, { code: `print({ bar: 5 } as Foo)`, options: [