From 19f21936838a28d1440fe1d84c6d32b33827d39e Mon Sep 17 00:00:00 2001 From: Ronen Amiel Date: Wed, 26 Mar 2025 23:54:22 +0200 Subject: [PATCH] check alias chain for deprecated properties --- .../eslint-plugin/src/rules/no-deprecated.ts | 1 + .../tests/rules/no-deprecated.test.ts | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/packages/eslint-plugin/src/rules/no-deprecated.ts b/packages/eslint-plugin/src/rules/no-deprecated.ts index 94d7a5ed7262..fb426747edd2 100644 --- a/packages/eslint-plugin/src/rules/no-deprecated.ts +++ b/packages/eslint-plugin/src/rules/no-deprecated.ts @@ -351,6 +351,7 @@ export default createRule({ propertySymbol?.valueDeclaration, ); return ( + searchForDeprecationInAliasesChain(propertySymbol, true) ?? getJsDocDeprecation(property) ?? getJsDocDeprecation(propertySymbol) ?? getJsDocDeprecation(valueSymbol) diff --git a/packages/eslint-plugin/tests/rules/no-deprecated.test.ts b/packages/eslint-plugin/tests/rules/no-deprecated.test.ts index 6469c0fe5c23..43ea34aa5471 100644 --- a/packages/eslint-plugin/tests/rules/no-deprecated.test.ts +++ b/packages/eslint-plugin/tests/rules/no-deprecated.test.ts @@ -2073,6 +2073,25 @@ exists('/foo'); }, ], }, + { + code: ` + import { deprecatedVariable } from './deprecated'; + + const test = { + someField: deprecatedVariable, + }; + `, + errors: [ + { + column: 22, + data: { name: 'deprecatedVariable' }, + endColumn: 40, + endLine: 5, + line: 5, + messageId: 'deprecated', + }, + ], + }, { code: ` import { normalFunction } from './deprecated';