From 3e36eba76c244bf8c51d8783af09be4456dd5f3b Mon Sep 17 00:00:00 2001 From: mainframev Date: Mon, 15 Sep 2025 13:59:34 +0200 Subject: [PATCH 1/2] fix(eslint-plugin): no-deprecated should not report deprecation on TSImportEqualsDeclaration --- packages/eslint-plugin/src/rules/no-deprecated.ts | 4 ++++ packages/eslint-plugin/tests/rules/no-deprecated.test.ts | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/packages/eslint-plugin/src/rules/no-deprecated.ts b/packages/eslint-plugin/src/rules/no-deprecated.ts index 71b333488b55..f186feec02ae 100644 --- a/packages/eslint-plugin/src/rules/no-deprecated.ts +++ b/packages/eslint-plugin/src/rules/no-deprecated.ts @@ -157,6 +157,10 @@ export default createRule({ case AST_NODE_TYPES.TSTypeParameter: return true; + // treat `export import Bar = Foo;` (and `import Foo = require('...')`) as declarations + case AST_NODE_TYPES.TSImportEqualsDeclaration: + return parent.id === node; + default: return false; } diff --git a/packages/eslint-plugin/tests/rules/no-deprecated.test.ts b/packages/eslint-plugin/tests/rules/no-deprecated.test.ts index e5a0937f4264..d7774021563e 100644 --- a/packages/eslint-plugin/tests/rules/no-deprecated.test.ts +++ b/packages/eslint-plugin/tests/rules/no-deprecated.test.ts @@ -245,6 +245,14 @@ ruleTester.run('no-deprecated', rule, { declare const x: Props; const { anchor = '' } = x; `, + ` + namespace Foo {} + + /** + * @deprecated + */ + export import Bar = Foo; + `, ` interface Props { anchor: 'foo'; From 37c6ff7a3232ebb314a8d466150be66f8a600382 Mon Sep 17 00:00:00 2001 From: mainframev Date: Wed, 1 Oct 2025 16:44:33 +0200 Subject: [PATCH 2/2] fixup! fix(eslint-plugin): no-deprecated should not report deprecation on TSImportEqualsDeclaration --- packages/eslint-plugin/tests/rules/no-deprecated.test.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/eslint-plugin/tests/rules/no-deprecated.test.ts b/packages/eslint-plugin/tests/rules/no-deprecated.test.ts index d7774021563e..6a643ab704c8 100644 --- a/packages/eslint-plugin/tests/rules/no-deprecated.test.ts +++ b/packages/eslint-plugin/tests/rules/no-deprecated.test.ts @@ -253,6 +253,13 @@ ruleTester.run('no-deprecated', rule, { */ export import Bar = Foo; `, + ` + /** + * @deprecated + */ + export import Bar = require('./deprecated'); + `, + ` interface Props { anchor: 'foo';