Skip to content

Commit 3e7bf15

Browse files
authored
fix: apply ignoreClassesWithImplements to class expressions (#21069)
1 parent 9835414 commit 3e7bf15

2 files changed

Lines changed: 23 additions & 1 deletion

File tree

‎lib/rules/class-methods-use-this.js‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,8 @@ module.exports = {
127127
function hasImplements(node) {
128128
const classNode = node.parent.parent;
129129
return (
130-
classNode?.type === "ClassDeclaration" &&
130+
(classNode?.type === "ClassDeclaration" ||
131+
classNode?.type === "ClassExpression") &&
131132
classNode.implements?.length > 0
132133
);
133134
}

‎tests/lib/rules/class-methods-use-this.js‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -680,6 +680,18 @@ ruleTesterTypeScript.run("class-methods-use-this", rule, {
680680
code: "class Foo implements Bar { property = () => {} }",
681681
options: [{ ignoreClassesWithImplements: "all" }],
682682
},
683+
{
684+
code: "const Foo = class implements Bar { method() {} };",
685+
options: [{ ignoreClassesWithImplements: "all" }],
686+
},
687+
{
688+
code: "const Foo = class implements Bar { property = () => {} };",
689+
options: [{ ignoreClassesWithImplements: "all" }],
690+
},
691+
{
692+
code: "const Foo = class implements Bar { method() {} };",
693+
options: [{ ignoreClassesWithImplements: "public-fields" }],
694+
},
683695
],
684696
invalid: [
685697
{
@@ -1339,5 +1351,14 @@ ruleTesterTypeScript.run("class-methods-use-this", rule, {
13391351
},
13401352
],
13411353
},
1354+
{
1355+
code: "const Foo = class implements Bar { method() {} };",
1356+
errors: [{ messageId: "missingThis" }],
1357+
},
1358+
{
1359+
code: "const Foo = class implements Bar { private method() {} };",
1360+
options: [{ ignoreClassesWithImplements: "public-fields" }],
1361+
errors: [{ messageId: "missingThis" }],
1362+
},
13421363
],
13431364
});

0 commit comments

Comments
 (0)