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: [