diff --git a/packages/eslint-plugin/src/rules/non-nullable-type-assertion-style.ts b/packages/eslint-plugin/src/rules/non-nullable-type-assertion-style.ts index eef8c58445f..647fbcddd4c 100644 --- a/packages/eslint-plugin/src/rules/non-nullable-type-assertion-style.ts +++ b/packages/eslint-plugin/src/rules/non-nullable-type-assertion-style.ts @@ -57,6 +57,10 @@ export default util.createRule({ type.flags !== ts.TypeFlags.Undefined, ); + if (nonNullishOriginalTypes.length === originalTypes.length) { + return false; + } + for (const assertedType of assertedTypes) { if (!nonNullishOriginalTypes.includes(assertedType)) { return false; diff --git a/packages/eslint-plugin/tests/rules/non-nullable-type-assertion-style.test.ts b/packages/eslint-plugin/tests/rules/non-nullable-type-assertion-style.test.ts index 33c603135f5..fadd5064abd 100644 --- a/packages/eslint-plugin/tests/rules/non-nullable-type-assertion-style.test.ts +++ b/packages/eslint-plugin/tests/rules/non-nullable-type-assertion-style.test.ts @@ -54,6 +54,13 @@ const y = x as NonNullable; ` const foo = [] as const; `, + ` +const x = 1 as 1; + `, + ` +declare function foo(): T; +const bar = foo() as number; + `, ], invalid: [