Skip to content

Commit ef54768

Browse files
fix: ignore the inheritance of static methods
2 parents eebd116 + f7e3f88 commit ef54768

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

inherit-types/index.js

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,14 @@ const doWrite = process.argv.includes("--write");
99

1010
const typeChecker = program.getTypeChecker();
1111

12+
/**
13+
* @param {ts.MethodDeclaration} decl
14+
* @returns {boolean} true if the method is static
15+
*/
16+
const isStaticMethod = (decl) => {
17+
return !!(ts.getCombinedModifierFlags(decl) & ts.ModifierFlags.Static);
18+
};
19+
1220
/**
1321
* @param {ts.ClassDeclaration | ts.ClassExpression} node the class declaration
1422
* @returns {Set<ts.ClassDeclaration | ts.ClassExpression>} the base class declarations
@@ -44,7 +52,7 @@ const getBaseClasses = (node) => {
4452
const findDeclarationInBaseClass = (classNode, memberName) => {
4553
for (const baseClass of getBaseClasses(classNode)) {
4654
for (const node of baseClass.members) {
47-
if (ts.isMethodDeclaration(node)) {
55+
if (ts.isMethodDeclaration(node) && !isStaticMethod(node)) {
4856
if (node.name.getText() === memberName) {
4957
return node;
5058
}
@@ -68,10 +76,7 @@ for (const sourceFile of program.getSourceFiles()) {
6876
const nodeHandler = (node) => {
6977
if (ts.isClassDeclaration(node) || ts.isClassExpression(node)) {
7078
for (const member of node.members) {
71-
if (
72-
ts.isMethodDeclaration(member) &&
73-
!(ts.getCombinedModifierFlags(member) & ts.ModifierFlags.Static)
74-
) {
79+
if (ts.isMethodDeclaration(member) && !isStaticMethod(member)) {
7580
const baseDecl = findDeclarationInBaseClass(
7681
node,
7782
member.name.getText(),

0 commit comments

Comments
 (0)