Skip to content

Commit 5841cd2

Browse files
authored
fix(eslint-plugin): don’t mark declare class as unused (#110)
fixes #106
1 parent 819b640 commit 5841cd2

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

Diff for: packages/eslint-plugin/lib/rules/no-unused-vars.js

+6
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,12 @@ module.exports = Object.assign({}, baseRule, {
9292
},
9393
'*[declare=true] Identifier'(node) {
9494
context.markVariableAsUsed(node.name);
95+
const scope = context.getScope();
96+
const { variableScope } = scope;
97+
if (variableScope !== scope) {
98+
const superVar = variableScope.set.get(node.name);
99+
if (superVar) superVar.eslintUsed = true;
100+
}
95101
}
96102
});
97103
}

Diff for: packages/eslint-plugin/tests/lib/rules/no-unused-vars.js

+7
Original file line numberDiff line numberDiff line change
@@ -540,6 +540,13 @@ declare namespace Foo {
540540
declare var Foo: {
541541
new (value?: any): Object,
542542
foo(): string
543+
}
544+
`,
545+
// https://github.com/typescript-eslint/typescript-eslint/issues/106
546+
`
547+
declare class Foo {
548+
constructor(value?: any): Object;
549+
foo(): string;
543550
}
544551
`,
545552
`

0 commit comments

Comments
 (0)