Skip to content

Error on unused vars in declaration files #968

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/popular-mangos-run.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@definitelytyped/eslint-plugin": patch
---

Error on unused vars in declaration files
13 changes: 13 additions & 0 deletions packages/eslint-plugin/src/configs/all.ts
Original file line number Diff line number Diff line change
Expand Up @@ -185,5 +185,18 @@ export const all: Linter.BaseConfig = {
],
},
},
{
files: ["*.d.cts", "*.d.mts", "*.d.ts", "*.d.*.ts"],
rules: {
"@typescript-eslint/no-unused-vars": [
"error",
{
// Ignore: (solely underscores | starting with exactly one underscore)
"argsIgnorePattern": "^(_+$|_[^_])",
"varsIgnorePattern": "^(_+$|_[^_])"
}
],
},
},
],
};
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
types/export-just-namespace/bad3.d.ts
3:1 error Instead of `export =`-ing a namespace, use the body of the namespace as the module body @definitelytyped/export-just-namespace
2:7 error 'other' is assigned a value but never used. Allowed unused vars must match /^(_+$|_[^_])/u @typescript-eslint/no-unused-vars
3:1 error Instead of `export =`-ing a namespace, use the body of the namespace as the module body @definitelytyped/export-just-namespace

1 problem (1 error, 0 warnings)
2 problems (2 errors, 0 warnings)

==== types/export-just-namespace/bad3.d.ts ====

namespace Stuff {}
const other = "code";
~~~~~
!!! @typescript-eslint/no-unused-vars: 'other' is assigned a value but never used. Allowed unused vars must match /^(_+$|_[^_])/u.
export = Stuff;
~~~~~~~~~~~~~~~
!!! @definitelytyped/export-just-namespace: Instead of `export =`-ing a namespace, use the body of the namespace as the module body.
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
No errors
types/export-just-namespace/good3.d.ts
1:13 error 'fs' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u @typescript-eslint/no-unused-vars

✖ 1 problem (1 error, 0 warnings)

==== types/export-just-namespace/good3.d.ts ====

import * as fs from "fs";
~~
!!! @typescript-eslint/no-unused-vars: 'fs' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u.
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
No errors
types/export-just-namespace/good4.d.ts
1:7 error 'value' is assigned a value but never used. Allowed unused vars must match /^(_+$|_[^_])/u @typescript-eslint/no-unused-vars

✖ 1 problem (1 error, 0 warnings)

==== types/export-just-namespace/good4.d.ts ====

const value = 123;
~~~~~
!!! @typescript-eslint/no-unused-vars: 'value' is assigned a value but never used. Allowed unused vars must match /^(_+$|_[^_])/u.
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,20 @@ types/no-bad-reference/v0.1/index.d.ts
2:22 error The reference "../v1/index.d.ts" resolves outside of the package. Use a global reference to reference other packages @definitelytyped/no-bad-reference
3:22 error The reference "../../foo/v0.1/index.d.ts" resolves outside of the package. Use a global reference to reference other packages @definitelytyped/no-bad-reference
4:22 error The reference "../index.d.ts" resolves outside of the package. Use a global reference to reference other packages @definitelytyped/no-bad-reference
6:13 error 'foo' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u @typescript-eslint/no-unused-vars
6:22 error The import "../../foo" resolves outside of the package. Use a bare import to reference other packages @definitelytyped/no-bad-reference
7:13 error 'foo2' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u @typescript-eslint/no-unused-vars
7:23 error The import "../v0.1" resolves to the current package, but uses relative paths @definitelytyped/no-bad-reference
8:13 error 'foo3' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u @typescript-eslint/no-unused-vars
8:23 error The import "../../foo/v0.1" resolves outside of the package. Use a bare import to reference other packages @definitelytyped/no-bad-reference
9:13 error 'va4' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u @typescript-eslint/no-unused-vars
9:22 error The import "../index" resolves outside of the package. Use a bare import to reference other packages @definitelytyped/no-bad-reference
12:10 error 'A' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u @typescript-eslint/no-unused-vars
13:10 error 'B' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u @typescript-eslint/no-unused-vars
14:10 error 'C' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u @typescript-eslint/no-unused-vars
14:22 error The import "../index" resolves outside of the package. Use a bare import to reference other packages @definitelytyped/no-bad-reference

10 problems (10 errors, 0 warnings)
17 problems (17 errors, 0 warnings)

==== types/no-bad-reference/v0.1/index.d.ts ====

Expand All @@ -30,22 +37,36 @@ types/no-bad-reference/v0.1/index.d.ts
!!! @definitelytyped/no-bad-reference: The reference "../index.d.ts" resolves outside of the package. Use a global reference to reference other packages.

import * as foo from "../../foo";
~~~
!!! @typescript-eslint/no-unused-vars: 'foo' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u.
~~~~~~~~~~~
!!! @definitelytyped/no-bad-reference: The import "../../foo" resolves outside of the package. Use a bare import to reference other packages.
import * as foo2 from "../v0.1";
~~~~
!!! @typescript-eslint/no-unused-vars: 'foo2' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u.
~~~~~~~~~
!!! @definitelytyped/no-bad-reference: The import "../v0.1" resolves to the current package, but uses relative paths.
import * as foo3 from "../../foo/v0.1";
~~~~
!!! @typescript-eslint/no-unused-vars: 'foo3' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u.
~~~~~~~~~~~~~~~~
!!! @definitelytyped/no-bad-reference: The import "../../foo/v0.1" resolves outside of the package. Use a bare import to reference other packages.
import * as va4 from "../index";
~~~
!!! @typescript-eslint/no-unused-vars: 'va4' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u.
~~~~~~~~~~
!!! @definitelytyped/no-bad-reference: The import "../index" resolves outside of the package. Use a bare import to reference other packages.

declare module "no-relative-references" {
import A = require("no-relative-references/blah"); // Okay; relative
~
!!! @typescript-eslint/no-unused-vars: 'A' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u.
import B = require("no-relative-references/v0.1"); // Okay; no versioned dir here
~
!!! @typescript-eslint/no-unused-vars: 'B' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u.
import C = require("../index"); // Bad; parent dir
~
!!! @typescript-eslint/no-unused-vars: 'C' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u.
~~~~~~~~~~
!!! @definitelytyped/no-bad-reference: The import "../index" resolves outside of the package. Use a bare import to reference other packages.
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,20 @@ types/no-bad-reference/v11/index.d.ts
2:22 error The reference "../v11/index.d.ts" resolves to the current package, but uses relative paths @definitelytyped/no-bad-reference
3:22 error The reference "../../foo/v1/index.d.ts" resolves outside of the package. Use a global reference to reference other packages @definitelytyped/no-bad-reference
4:22 error The reference "../index.d.ts" resolves outside of the package. Use a global reference to reference other packages @definitelytyped/no-bad-reference
6:13 error 'foo' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u @typescript-eslint/no-unused-vars
6:22 error The import "../../foo" resolves outside of the package. Use a bare import to reference other packages @definitelytyped/no-bad-reference
7:13 error 'foo2' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u @typescript-eslint/no-unused-vars
7:23 error The import "../v11" resolves to the current package, but uses relative paths @definitelytyped/no-bad-reference
8:13 error 'foo3' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u @typescript-eslint/no-unused-vars
8:23 error The import "../../foo/v11" resolves outside of the package. Use a bare import to reference other packages @definitelytyped/no-bad-reference
9:13 error 'va4' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u @typescript-eslint/no-unused-vars
9:22 error The import "../index" resolves outside of the package. Use a bare import to reference other packages @definitelytyped/no-bad-reference
12:10 error 'A' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u @typescript-eslint/no-unused-vars
13:10 error 'B' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u @typescript-eslint/no-unused-vars
14:10 error 'C' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u @typescript-eslint/no-unused-vars
14:22 error The import "../index" resolves outside of the package. Use a bare import to reference other packages @definitelytyped/no-bad-reference

10 problems (10 errors, 0 warnings)
17 problems (17 errors, 0 warnings)

==== types/no-bad-reference/v11/index.d.ts ====

Expand All @@ -30,22 +37,36 @@ types/no-bad-reference/v11/index.d.ts
!!! @definitelytyped/no-bad-reference: The reference "../index.d.ts" resolves outside of the package. Use a global reference to reference other packages.

import * as foo from "../../foo";
~~~
!!! @typescript-eslint/no-unused-vars: 'foo' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u.
~~~~~~~~~~~
!!! @definitelytyped/no-bad-reference: The import "../../foo" resolves outside of the package. Use a bare import to reference other packages.
import * as foo2 from "../v11";
~~~~
!!! @typescript-eslint/no-unused-vars: 'foo2' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u.
~~~~~~~~
!!! @definitelytyped/no-bad-reference: The import "../v11" resolves to the current package, but uses relative paths.
import * as foo3 from "../../foo/v11";
~~~~
!!! @typescript-eslint/no-unused-vars: 'foo3' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u.
~~~~~~~~~~~~~~~
!!! @definitelytyped/no-bad-reference: The import "../../foo/v11" resolves outside of the package. Use a bare import to reference other packages.
import * as va4 from "../index";
~~~
!!! @typescript-eslint/no-unused-vars: 'va4' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u.
~~~~~~~~~~
!!! @definitelytyped/no-bad-reference: The import "../index" resolves outside of the package. Use a bare import to reference other packages.

declare module "no-relative-references" {
import A = require("no-relative-references/blah"); // Okay; relative
~
!!! @typescript-eslint/no-unused-vars: 'A' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u.
import B = require("no-relative-references/v11"); // Okay; no versioned dir here
~
!!! @typescript-eslint/no-unused-vars: 'B' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u.
import C = require("../index"); // Bad; parent dir
~
!!! @typescript-eslint/no-unused-vars: 'C' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u.
~~~~~~~~~~
!!! @definitelytyped/no-bad-reference: The import "../index" resolves outside of the package. Use a bare import to reference other packages.
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
types/no-const-enum/bad.d.ts
1:1 error Use of `const enum` is forbidden @definitelytyped/no-const-enum
1:1 error Use of `const enum` is forbidden @definitelytyped/no-const-enum
1:12 error 'E' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u @typescript-eslint/no-unused-vars

1 problem (1 error, 0 warnings)
2 problems (2 errors, 0 warnings)

==== types/no-const-enum/bad.d.ts ====

const enum E { }
~~~~~~~~~~~~~~~~
!!! @definitelytyped/no-const-enum: Use of `const enum` is forbidden.
~
!!! @typescript-eslint/no-unused-vars: 'E' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u.
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
No errors
types/no-const-enum/index.d.ts
1:6 error 'F' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u @typescript-eslint/no-unused-vars

✖ 1 problem (1 error, 0 warnings)

==== types/no-const-enum/index.d.ts ====

enum F {}
~
!!! @typescript-eslint/no-unused-vars: 'F' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u.
Original file line number Diff line number Diff line change
@@ -1,17 +1,23 @@
types/no-import-default-of-export-equals/bad.d.ts
7:12 error The module a uses `export = `. Import with `import a = require(a)` @definitelytyped/no-import-default-of-export-equals
2:15 error 'I' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u @typescript-eslint/no-unused-vars
7:12 error The module a uses `export = `. Import with `import a = require(a)` @definitelytyped/no-import-default-of-export-equals
7:12 error 'a' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u @typescript-eslint/no-unused-vars

1 problem (1 error, 0 warnings)
3 problems (3 errors, 0 warnings)

==== types/no-import-default-of-export-equals/bad.d.ts ====

declare module "a" {
interface I { i: any }
~
!!! @typescript-eslint/no-unused-vars: 'I' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u.
export = I;
}

declare module "b" {
import a from "a";
~
!!! @definitelytyped/no-import-default-of-export-equals: The module a uses `export = `. Import with `import a = require(a)`.
~
!!! @typescript-eslint/no-unused-vars: 'a' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u.
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
types/no-import-default-of-export-equals/index.d.ts
1:1 error Packages should contain value components, not just types @definitelytyped/no-type-only-packages
1:1 error Packages should contain value components, not just types @definitelytyped/no-type-only-packages
7:12 error 'a' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u @typescript-eslint/no-unused-vars

1 problem (1 error, 0 warnings)
2 problems (2 errors, 0 warnings)

==== types/no-import-default-of-export-equals/index.d.ts ====

Expand All @@ -14,4 +15,6 @@ types/no-import-default-of-export-equals/index.d.ts

declare module "bgood" {
import a from "agood";
~
!!! @typescript-eslint/no-unused-vars: 'a' is defined but never used. Allowed unused vars must match /^(_+$|_[^_])/u.
}
Loading