From 2521b857ae9262a65d736be2f2238e903cc1d862 Mon Sep 17 00:00:00 2001 From: Linda_pp Date: Sun, 7 Apr 2019 16:59:15 +0900 Subject: [PATCH] fix(eslint-plugin): no-object-literal-type-assertion: fix `as const` is reported (#390) --- .../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 55c91ac6e51..d8362013321 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 e25e96de694..336df4c29a1 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: [