diff --git a/packages/eslint-plugin/src/rules/no-unsafe-assignment.ts b/packages/eslint-plugin/src/rules/no-unsafe-assignment.ts index d32812f6edfa..d0b31a5e8446 100644 --- a/packages/eslint-plugin/src/rules/no-unsafe-assignment.ts +++ b/packages/eslint-plugin/src/rules/no-unsafe-assignment.ts @@ -337,6 +337,16 @@ export default createRule({ } return { + 'AccessorProperty[value != null]'( + node: { value: NonNullable } & TSESTree.AccessorProperty, + ): void { + checkAssignment( + node.key, + node.value, + node, + getComparisonType(node.typeAnnotation), + ); + }, 'AssignmentExpression[operator = "="], AssignmentPattern'( node: TSESTree.AssignmentExpression | TSESTree.AssignmentPattern, ): void { diff --git a/packages/eslint-plugin/tests/rules/no-unsafe-assignment.test.ts b/packages/eslint-plugin/tests/rules/no-unsafe-assignment.test.ts index 30a256d6ee5f..0f2654f22279 100644 --- a/packages/eslint-plugin/tests/rules/no-unsafe-assignment.test.ts +++ b/packages/eslint-plugin/tests/rules/no-unsafe-assignment.test.ts @@ -92,6 +92,11 @@ class Foo { ` class Foo { private a = 1; +} + `, + ` +class Foo { + accessor a = 1; } `, 'const x: Set = new Set();', @@ -203,6 +208,14 @@ class Foo { }, { code: ` +class Foo { + accessor a = 1 as any; +} + `, + errors: [{ messageId: 'anyAssignment' }], + }, + { + code: ` const [x] = spooky; `, errors: [