diff --git a/packages/eslint-plugin/src/rules/no-deprecated.ts b/packages/eslint-plugin/src/rules/no-deprecated.ts index d8e7ebc0105e..e18224cd8969 100644 --- a/packages/eslint-plugin/src/rules/no-deprecated.ts +++ b/packages/eslint-plugin/src/rules/no-deprecated.ts @@ -135,7 +135,7 @@ export default createRule({ case AST_NODE_TYPES.ArrowFunctionExpression: case AST_NODE_TYPES.BlockStatement: - case AST_NODE_TYPES.ClassBody: + case AST_NODE_TYPES.ClassDeclaration: case AST_NODE_TYPES.TSInterfaceDeclaration: case AST_NODE_TYPES.FunctionDeclaration: case AST_NODE_TYPES.FunctionExpression: diff --git a/packages/eslint-plugin/tests/rules/no-deprecated.test.ts b/packages/eslint-plugin/tests/rules/no-deprecated.test.ts index 46af24bf1c98..5d104fbbd3be 100644 --- a/packages/eslint-plugin/tests/rules/no-deprecated.test.ts +++ b/packages/eslint-plugin/tests/rules/no-deprecated.test.ts @@ -2354,5 +2354,98 @@ ruleTester.run('no-deprecated', rule, { }, }, }, + { + code: ` + /** @deprecated */ + interface Foo {} + + class Bar implements Foo {} + `, + errors: [ + { + column: 30, + data: { name: 'Foo' }, + endColumn: 33, + endLine: 5, + line: 5, + messageId: 'deprecated', + }, + ], + }, + { + code: ` + /** @deprecated */ + interface Foo {} + + export class Bar implements Foo {} + `, + errors: [ + { + column: 37, + data: { name: 'Foo' }, + endColumn: 40, + endLine: 5, + line: 5, + messageId: 'deprecated', + }, + ], + }, + { + code: ` + /** @deprecated */ + interface Foo {} + + interface Baz {} + + export class Bar implements Baz, Foo {} + `, + errors: [ + { + column: 42, + data: { name: 'Foo' }, + endColumn: 45, + endLine: 7, + line: 7, + messageId: 'deprecated', + }, + ], + }, + { + code: ` + /** @deprecated */ + class Foo {} + + export class Bar extends Foo {} + `, + errors: [ + { + column: 34, + data: { name: 'Foo' }, + endColumn: 37, + endLine: 5, + line: 5, + messageId: 'deprecated', + }, + ], + }, + { + code: ` + /** @deprecated */ + declare function decorator(constructor: Function); + + @decorator + export class Foo {} + `, + errors: [ + { + column: 10, + data: { name: 'decorator' }, + endColumn: 19, + endLine: 5, + line: 5, + messageId: 'deprecated', + }, + ], + }, ], });
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: