@typescript-eslint/eslint-plugin 8.22.1-alpha.12 → 8.22.1-alpha.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -32,7 +32,7 @@ exports.default = (0, util_1.createRule)({
|
|
32
32
|
},
|
33
33
|
},
|
34
34
|
ignoreClassesThatImplementAnInterface: {
|
35
|
-
description: '
|
35
|
+
description: 'Whether to ignore class members that are defined within a class that `implements` a type.',
|
36
36
|
oneOf: [
|
37
37
|
{
|
38
38
|
type: 'boolean',
|
@@ -47,7 +47,7 @@ exports.default = (0, util_1.createRule)({
|
|
47
47
|
},
|
48
48
|
ignoreOverrideMethods: {
|
49
49
|
type: 'boolean',
|
50
|
-
description: '
|
50
|
+
description: 'Whether to ignore members marked with the `override` modifier.',
|
51
51
|
},
|
52
52
|
},
|
53
53
|
},
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"class-methods-use-this.js","sourceRoot":"","sources":["../../src/rules/class-methods-use-this.ts"],"names":[],"mappings":";;AAEA,oDAA0D;AAE1D,kCAKiB;AAYjB,kBAAe,IAAA,iBAAU,EAAsB;IAC7C,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,2CAA2C;YACxD,eAAe,EAAE,IAAI;YACrB,oBAAoB,EAAE,KAAK;SAC5B;QACD,QAAQ,EAAE;YACR,WAAW,EAAE,+CAA+C;SAC7D;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE;oBACV,qBAAqB,EAAE;wBACrB,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,IAAI;wBACb,WAAW,EACT,6EAA6E;qBAChF;oBACD,aAAa,EAAE;wBACb,IAAI,EAAE,OAAO;wBACb,WAAW,EACT,6DAA6D;wBAC/D,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;yBACf;qBACF;oBACD,qCAAqC,EAAE;wBACrC,WAAW,EACT,
|
1
|
+
{"version":3,"file":"class-methods-use-this.js","sourceRoot":"","sources":["../../src/rules/class-methods-use-this.ts"],"names":[],"mappings":"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"}
|
@@ -10,7 +10,7 @@ import TabItem from '@theme/TabItem';
|
|
10
10
|
> See **https://typescript-eslint.io/rules/class-methods-use-this** for documentation.
|
11
11
|
|
12
12
|
This rule extends the base [`eslint/class-methods-use-this`](https://eslint.org/docs/rules/class-methods-use-this) rule.
|
13
|
-
It adds support for ignoring `override` methods or methods on classes that implement an interface.
|
13
|
+
It adds support for ignoring `override` methods and/or methods on classes that implement an interface.
|
14
14
|
|
15
15
|
## Options
|
16
16
|
|
@@ -33,12 +33,15 @@ const defaultOptions: Options = {
|
|
33
33
|
|
34
34
|
{/* insert option description */}
|
35
35
|
|
36
|
-
|
37
|
-
|
38
|
-
Example of a correct code when `ignoreOverrideMethods` is set to `true`:
|
36
|
+
Example of correct code when `ignoreOverrideMethods` is set to `true`:
|
39
37
|
|
40
38
|
```ts option='{ "ignoreOverrideMethods": true }' showPlaygroundButton
|
41
|
-
class
|
39
|
+
abstract class Base {
|
40
|
+
abstract method(): void;
|
41
|
+
abstract property: () => void;
|
42
|
+
}
|
43
|
+
|
44
|
+
class Derived extends Base {
|
42
45
|
override method() {}
|
43
46
|
override property = () => {};
|
44
47
|
}
|
@@ -53,19 +56,39 @@ If specified, it can be either:
|
|
53
56
|
- `true`: Ignore all classes that implement an interface
|
54
57
|
- `'public-fields'`: Ignore only the public fields of classes that implement an interface
|
55
58
|
|
56
|
-
|
59
|
+
Note that this option applies to all class members, not just those defined in the interface.
|
57
60
|
|
58
61
|
#### `true`
|
59
62
|
|
60
|
-
|
63
|
+
Examples of code when `ignoreClassesThatImplementAnInterface` is set to `true`:
|
64
|
+
|
65
|
+
<Tabs>
|
66
|
+
<TabItem value="❌ Incorrect">
|
61
67
|
|
62
68
|
```ts option='{ "ignoreClassesThatImplementAnInterface": true }' showPlaygroundButton
|
63
|
-
class
|
69
|
+
class Standalone {
|
64
70
|
method() {}
|
65
71
|
property = () => {};
|
66
72
|
}
|
67
73
|
```
|
68
74
|
|
75
|
+
</TabItem>
|
76
|
+
<TabItem value="✅ Correct">
|
77
|
+
|
78
|
+
```ts option='{ "ignoreClassesThatImplementAnInterface": true }' showPlaygroundButton
|
79
|
+
interface Base {
|
80
|
+
method(): void;
|
81
|
+
}
|
82
|
+
|
83
|
+
class Derived implements Base {
|
84
|
+
method() {}
|
85
|
+
property = () => {};
|
86
|
+
}
|
87
|
+
```
|
88
|
+
|
89
|
+
</TabItem>
|
90
|
+
</Tabs>
|
91
|
+
|
69
92
|
#### `'public-fields'`
|
70
93
|
|
71
94
|
Example of incorrect code when `ignoreClassesThatImplementAnInterface` is set to `'public-fields'`:
|
@@ -73,16 +96,20 @@ Example of incorrect code when `ignoreClassesThatImplementAnInterface` is set to
|
|
73
96
|
<Tabs>
|
74
97
|
<TabItem value="❌ Incorrect">
|
75
98
|
|
76
|
-
```ts option='{ "ignoreClassesThatImplementAnInterface": "public-fields" }'
|
77
|
-
|
99
|
+
```ts option='{ "ignoreClassesThatImplementAnInterface": "public-fields" }' showPlaygroundButton
|
100
|
+
interface Base {
|
101
|
+
method(): void;
|
102
|
+
}
|
103
|
+
|
104
|
+
class Derived implements Base {
|
78
105
|
method() {}
|
79
106
|
property = () => {};
|
80
107
|
|
81
108
|
private privateMethod() {}
|
82
109
|
private privateProperty = () => {};
|
83
110
|
|
84
|
-
protected
|
85
|
-
protected
|
111
|
+
protected protectedMethod() {}
|
112
|
+
protected protectedProperty = () => {};
|
86
113
|
}
|
87
114
|
```
|
88
115
|
|
@@ -90,7 +117,11 @@ class X implements Y {
|
|
90
117
|
<TabItem value="✅ Correct">
|
91
118
|
|
92
119
|
```ts option='{ "ignoreClassesThatImplementAnInterface": "public-fields" }'
|
93
|
-
|
120
|
+
interface Base {
|
121
|
+
method(): void;
|
122
|
+
}
|
123
|
+
|
124
|
+
class Derived implements Base {
|
94
125
|
method() {}
|
95
126
|
property = () => {};
|
96
127
|
}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@typescript-eslint/eslint-plugin",
|
3
|
-
"version": "8.22.1-alpha.
|
3
|
+
"version": "8.22.1-alpha.13",
|
4
4
|
"description": "TypeScript plugin for ESLint",
|
5
5
|
"files": [
|
6
6
|
"dist",
|
@@ -61,10 +61,10 @@
|
|
61
61
|
},
|
62
62
|
"dependencies": {
|
63
63
|
"@eslint-community/regexpp": "^4.10.0",
|
64
|
-
"@typescript-eslint/scope-manager": "8.22.1-alpha.
|
65
|
-
"@typescript-eslint/type-utils": "8.22.1-alpha.
|
66
|
-
"@typescript-eslint/utils": "8.22.1-alpha.
|
67
|
-
"@typescript-eslint/visitor-keys": "8.22.1-alpha.
|
64
|
+
"@typescript-eslint/scope-manager": "8.22.1-alpha.13",
|
65
|
+
"@typescript-eslint/type-utils": "8.22.1-alpha.13",
|
66
|
+
"@typescript-eslint/utils": "8.22.1-alpha.13",
|
67
|
+
"@typescript-eslint/visitor-keys": "8.22.1-alpha.13",
|
68
68
|
"graphemer": "^1.4.0",
|
69
69
|
"ignore": "^5.3.1",
|
70
70
|
"natural-compare": "^1.4.0",
|
@@ -75,8 +75,8 @@
|
|
75
75
|
"@types/marked": "^5.0.2",
|
76
76
|
"@types/mdast": "^4.0.3",
|
77
77
|
"@types/natural-compare": "*",
|
78
|
-
"@typescript-eslint/rule-schema-to-typescript-types": "8.22.1-alpha.
|
79
|
-
"@typescript-eslint/rule-tester": "8.22.1-alpha.
|
78
|
+
"@typescript-eslint/rule-schema-to-typescript-types": "8.22.1-alpha.13",
|
79
|
+
"@typescript-eslint/rule-tester": "8.22.1-alpha.13",
|
80
80
|
"ajv": "^6.12.6",
|
81
81
|
"cross-env": "^7.0.3",
|
82
82
|
"cross-fetch": "*",
|