Skip to content

feat(eslint-plugin): [no-unnecessary-type-parameters] initial implementation #8173

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

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
176 commits
Select commit Hold shift + click to select a range
bff3ffb
new rule, pairing w/ josh
danvk Dec 20, 2023
b3a2ba2
start adding tests, discover some problesm
danvk Dec 20, 2023
fecd305
failing testgs
danvk Dec 20, 2023
fd14c5c
very simple version that fails with inferred return types
danvk Dec 22, 2023
dea56bf
some processing of inferred return types
danvk Jan 2, 2024
3cdeeee
try to add inferred usages to count
danvk Jan 2, 2024
20c9399
11/12 passing!
danvk Jan 2, 2024
edf54c5
12/12 pass
danvk Jan 2, 2024
c2e3788
weird circular JSON error
danvk Jan 2, 2024
87d30fe
oops
danvk Jan 2, 2024
66ad82a
add test with inferred tuple type
danvk Jan 2, 2024
9ff6aae
add test with inferred tuple type
danvk Jan 2, 2024
43b0424
failing test with inferred object type
danvk Jan 2, 2024
a5fcfc4
descend into object types
danvk Jan 2, 2024
1c06ec1
copy over another test
danvk Jan 2, 2024
2194a12
failing test case on method
danvk Jan 2, 2024
8ebf34a
Run on MethodDefinition
danvk Jan 2, 2024
1244a13
add TODO
danvk Jan 2, 2024
3be30d5
comment
danvk Jan 2, 2024
438a645
re-enable invalid eslint-plugin-etc test
danvk Jan 2, 2024
7731a88
port one more
danvk Jan 2, 2024
fbe18a9
shadowing test case
danvk Jan 2, 2024
81523ab
port one more test
danvk Jan 2, 2024
b95883b
port over DefinitelyTyped-tools tests; two failing
danvk Jan 2, 2024
aa025a7
resolve one failure
danvk Jan 2, 2024
318db40
resolve second failure
danvk Jan 2, 2024
77bc70e
enable two more tests
danvk Jan 2, 2024
5f0b849
one failing test from eslint-plugin-etc
danvk Jan 2, 2024
89ba35c
one more failing test
danvk Jan 2, 2024
40199a8
full port of eslint-plugin-etc tests
danvk Jan 2, 2024
c542524
one failing test from ETS post
danvk Jan 2, 2024
74cddeb
fix previous error, expose a new one with a test
danvk Jan 2, 2024
8420f28
resolve inferred return types on methods
danvk Jan 2, 2024
a54b494
add both() function to test cases
danvk Jan 2, 2024
88dc28f
enable eslint rule, cleanup
danvk Jan 2, 2024
983a4bc
cleanup, add docs
danvk Jan 2, 2024
3366958
Merge branch 'main' into no-unnecessary-type-parameters
danvk Jan 2, 2024
0555244
add to rules list
danvk Jan 3, 2024
3862291
generate configs
danvk Jan 3, 2024
7499dc7
update tests, docs
danvk Jan 3, 2024
11915b5
Merge branch 'main' into no-unnecessary-type-parameters
danvk Jan 5, 2024
260b396
Merge branch 'main' into no-unnecessary-type-parameters
danvk Jan 7, 2024
d914f7f
Update packages/eslint-plugin/docs/rules/no-unnecessary-type-paramete…
danvk Feb 4, 2024
a1a97b8
Update packages/eslint-plugin/tests/rules/no-unnecessary-type-paramet…
danvk Feb 4, 2024
b03a80c
fix(utils): improve error message on typed rule with invalid parser (…
JoshuaKGoldberg Jan 7, 2024
9815ac0
chore: enable no-dynamic-delete internally (#7954)
JoshuaKGoldberg Jan 7, 2024
bc63572
chore: rename release.ts to release.mts (#8204)
JoshuaKGoldberg Jan 7, 2024
9a6535a
chore: enable eslint-plugin-jsdoc internally (#8145)
JoshuaKGoldberg Jan 7, 2024
c9e35b6
docs: document allowAutomaticSingleRunInference (#8138)
JoshuaKGoldberg Jan 7, 2024
7a36d05
chore: prevent a11y-alt-text-bot workflow when author is a bot (#8212)
haocheng6 Jan 8, 2024
98f37e6
chore(typescript-estree): remove unnecessary old snapshots (#8198)
auvred Jan 8, 2024
e429dae
fix(eslint-plugin): [no-non-null-assertion] provide valid fix when me…
auvred Jan 8, 2024
f56e842
fix(eslint-plugin): [no-unnecessary-condition] improve checking optio…
yeonjuan Jan 8, 2024
2ba8c00
fix(eslint-plugin): [prefer-readonly] support modifiers of unions and…
auvred Jan 8, 2024
24390d7
fix(eslint-plugin): [switch-exhaustiveness-check] fix new allowDefaul…
Zamiell Jan 8, 2024
095b3a6
chore(deps): update dependency tsx to v4.7.0 (#8162)
renovate[bot] Jan 8, 2024
a4ffa49
chore: fix yargs call in release script (#8221)
JoshuaKGoldberg Jan 8, 2024
e798241
chore: fix test formatting in prefer-readonly.test.ts (#8223)
JoshuaKGoldberg Jan 8, 2024
c038426
chore(release): publish 6.18.1
typescript-eslint[bot] Jan 8, 2024
a9ec7b2
feat(eslint-plugin): [prefer-promise-reject-errors] add rule (#8011)
auvred Jan 9, 2024
edf4870
docs: base Testing Rules documentation (#8033)
c0sta Jan 9, 2024
45cce54
feat(eslint-plugin): [no-array-delete] add new rule (#8067)
StyleShit Jan 9, 2024
2ae5440
docs: force space after await in no-floating-promises snippet (#8228)
kirkwaiblinger Jan 9, 2024
21dbb31
feat(eslint-plugin): [no-useless-template-literals] add fix suggestio…
StyleShit Jan 9, 2024
4cbb510
docs: link version in website header to GitHub release (#8236)
FloEdelmann Jan 11, 2024
cfaf2a8
fix(typescript-estree): add JSDocParsingMode enum merge for typescrip…
JoshuaKGoldberg Jan 12, 2024
a305a82
fix(eslint-plugin): [no-unnecessary-type-assertion] detect unnecessar…
lvjiaxuan Jan 12, 2024
5f327dc
fix(typescript-estree): disallow `using` as the variable keyword for …
Solo-steven Jan 12, 2024
8e4f484
fix(eslint-plugin): [no-unnecesary-type-assertion] treat unknown/any …
Josh-Cena Jan 12, 2024
9ec35a2
fix(typescript-estree): fix incorrect backwards-compat augmentation i…
bradzacher Jan 13, 2024
77b36ea
chore: make lint job use eslint-plugin outputs as inputs (#8245)
JamesHenry Jan 13, 2024
62cc2aa
chore(release): publish 6.19.0
typescript-eslint[bot] Jan 15, 2024
4b9a1fa
fix(type-utils): preventing isUnsafeAssignment infinite recursive cal…
yeonjuan Jan 16, 2024
6d3e600
fix(eslint-plugin): [no-unnecessary-condition] fix false positive for…
yeonjuan Jan 19, 2024
bf65e22
chore(release): publish 6.19.1
typescript-eslint[bot] Jan 22, 2024
e177a33
fix(eslint-plugin): [no-useless-template-literals] incorrect bigint a…
yeonjuan Jan 22, 2024
5253856
docs: underline URLs, change contrast in syntax highlighting (#8225)
lucas-amberg Jan 25, 2024
3bfe101
chore: update sponsors (#8303)
typescript-eslint[bot] Jan 26, 2024
2e9035a
docs: add `import/no-unresolved` to perf troubleshooting docs (#8190)
Zamiell Jan 28, 2024
78c165b
feat(eslint-plugin): [member-ordering] allow easy reuse of the defaul…
parloti Jan 28, 2024
03866c1
docs: show all articles in sidebar, and a missing truncate (#8306)
JoshuaKGoldberg Jan 28, 2024
6dde5d0
chore: enable prefer-nullish-coalescing internally (#7955)
JoshuaKGoldberg Jan 28, 2024
2ecc5e7
fix(eslint-plugin): [prefer-nullish-coalescing] treat any/unknown as …
auvred Jan 28, 2024
db2df24
fix(eslint-plugin): [no-useless-template-literals] report Infinity & …
StyleShit Jan 29, 2024
2d45a50
chore(deps): update react (#8042)
renovate[bot] Jan 29, 2024
ffa1a49
chore(eslint-plugin): fix typos in schema definitions (#8311)
hyperupcall Jan 29, 2024
08bc190
chore: fix broken and outdated links (#8264)
NanderTGA Jan 29, 2024
3b79444
fix(eslint-plugin): [prefer-readonly] disable checking accessors (#8300)
Jamesernator Jan 29, 2024
c9ceb9d
chore(release): publish 6.20.0
typescript-eslint[bot] Jan 29, 2024
1bc3c97
chore(eslint-plugin): [no-unused-vars] remove unused nested TSModuleD…
auvred Jan 29, 2024
bb907e2
fix(eslint-plugin): [no-unused-vars] don't report on types referenced…
auvred Jan 29, 2024
33b974d
docs(eslint-plugin): remove `fixable` and `hasSuggestions` from rules…
auvred Jan 29, 2024
b56976e
feat(typescript-estree): forbid duplicated accessibility modifiers (#…
auvred Jan 29, 2024
b7cef73
test(eslint-plugin): assert that `ts`/`tsx` code blocks in docs are s…
auvred Jan 29, 2024
d56daf2
chore(deps): update dependency @swc/jest to v0.2.31 (#8313)
renovate[bot] Jan 30, 2024
b683c99
chore(deps): update dependency @swc/core to v1.3.106 (#8219)
renovate[bot] Jan 30, 2024
20aa80b
chore(deps): update babel to v7.23.9 (#8199)
renovate[bot] Jan 30, 2024
cffeff1
chore: unpin primary node version in ci (#8167)
auvred Jan 30, 2024
dfd35e3
fix(eslint-plugin): [switch-exhaustiveness-check] better support for …
auvred Jan 30, 2024
9b4b595
docs: add /maintenance/team page (#8057)
JoshuaKGoldberg Feb 1, 2024
00adcb3
chore: move generate-configs to repo-tools (#8329)
bradzacher Feb 1, 2024
86f4a6a
chore: add `typescript-eslint` package scaffold (#8296)
bradzacher Feb 1, 2024
7139e45
fix(eslint-plugin): [consistent-type-imports] dont report on types us…
auvred Feb 1, 2024
605d683
fix(eslint-plugin): [no-unnecessary-condition] handle left-hand optio…
yeonjuan Feb 1, 2024
5bb38fc
chore: remove unnecessary eslint-disable comments (#8336)
yeonjuan Feb 2, 2024
c318218
chore: update sponsors (#8340)
typescript-eslint[bot] Feb 2, 2024
6e7ebd2
chore: bump eslint versions (#8338)
bradzacher Feb 2, 2024
8070b5e
chore: cleanup test-utils naming/locations (#8341)
bradzacher Feb 2, 2024
f80df34
chore(website): [playground] add twoslash queries (#8119)
auvred Feb 2, 2024
55a56ff
fix(eslint-plugin): [class-literal-property-style] allow getter when …
yeonjuan Feb 2, 2024
7bdd202
feat(utils): improve eslint types (#8344)
bradzacher Feb 3, 2024
be5dcea
feat: export plugin metadata (#8331)
bradzacher Feb 3, 2024
0498cfa
feat(eslint-plugin): add rule prefer-find (#8216)
kirkwaiblinger Feb 3, 2024
76b82dc
chore(deps): update dependency @prettier/sync to ^0.5.0 (#8342)
renovate[bot] Feb 3, 2024
937df84
chore(deps): update dependency clsx to v2.1.0 (#8343)
renovate[bot] Feb 3, 2024
b73bcfb
chore(deps): update dependency netlify to v13.1.14 (#8321)
renovate[bot] Feb 3, 2024
5efa3f5
chore(deps): update dependency lint-staged to v15.2.0 (#8043)
renovate[bot] Feb 3, 2024
1dbc1dc
chore(deps): update dependency prettier to v3.2.4 (#8127)
renovate[bot] Feb 3, 2024
c14abab
chore(deps): update dependency markdownlint-cli to ^0.38.0 (#8159)
renovate[bot] Feb 3, 2024
80fb537
chore(deps): update dependency monaco-editor to ~0.45.0 (#8161)
renovate[bot] Feb 3, 2024
c2240b1
chore(deps): update dependency react-resizable-panels to ^0.0.63 (#8328)
renovate[bot] Feb 3, 2024
8eb089f
chore(deps): update dependency lint-staged to v15.2.1 (#8350)
renovate[bot] Feb 3, 2024
a0029c0
fix(ast-spec): add `JSXElement` type to the `JSXAttribute['value']` (…
auvred Feb 3, 2024
0584edd
fix(eslint-plugin): [no-unnecessary-type-assertion] provide valid fix…
auvred Feb 3, 2024
cd1d307
chore(eslint-plugin): [no-invalid-void-type] fix `Options` typing to …
kazarmy Feb 3, 2024
14d86d1
fix(rule-tester): fix a phantom dependency on the "semver" package (…
octogonz Feb 3, 2024
5d00bae
feat: allow `parserOptions.project: false` (#8339)
bradzacher Feb 4, 2024
b81d1db
chore(deps): update dependency @swc/jest to v0.2.34 (#8363)
renovate[bot] Feb 4, 2024
359bc18
chore(deps): update dependency ignore to v5.3.1 (#8360)
renovate[bot] Feb 4, 2024
d333a09
chore(deps): update dependency @types/node to v20.11.15 (#8356)
renovate[bot] Feb 4, 2024
c4e9ebc
chore(deps): update dependency @types/react to v18.2.51 (#8361)
renovate[bot] Feb 4, 2024
bd1f7cc
chore(deps): update dependency netlify to v13.1.14 (#8353)
renovate[bot] Feb 4, 2024
82de7b7
chore(deps): update dependency webpack to v5.90.0 (#8359)
renovate[bot] Feb 4, 2024
7092762
chore(deps): update dependency @babel/eslint-parser to v7.23.10 (#8349)
renovate[bot] Feb 4, 2024
ca9b4d3
chore(deps): update dependency @types/jest to v29.5.12 (#8371)
renovate[bot] Feb 4, 2024
b6cf082
chore(deps): update dependency markdownlint-cli to ^0.39.0 (#8354)
renovate[bot] Feb 4, 2024
7b23880
chore(deps): update dependency prettier to v3.2.4 (#8357)
renovate[bot] Feb 4, 2024
e21aaa7
code review
danvk Feb 4, 2024
b954bf0
Merge branch 'main' into no-unnecessary-type-parameters
danvk Feb 4, 2024
02f8c7f
Apply suggestions from code review
JoshuaKGoldberg Apr 15, 2024
dd366cc
Fixed up the tsNode.body complaint
JoshuaKGoldberg Apr 15, 2024
daba7df
Merge branch 'main' into no-unnecessary-type-parameters
JoshuaKGoldberg Apr 15, 2024
366f564
Apply suggestions from code review
JoshuaKGoldberg Apr 15, 2024
327b288
Generated configs, and touched up docs
JoshuaKGoldberg Apr 15, 2024
e855e9f
Let's make it strict
JoshuaKGoldberg Apr 15, 2024
398c496
Account for type parameters used as type arguments
JoshuaKGoldberg Apr 15, 2024
721faa1
Tweaked docs
JoshuaKGoldberg Apr 15, 2024
838ab2d
Correct lint and snapshot issues
JoshuaKGoldberg Apr 15, 2024
6d2322b
Aha, one more T
JoshuaKGoldberg Apr 15, 2024
72b5a96
Fixed up last test cases
JoshuaKGoldberg Apr 16, 2024
0da4c6e
Reworked to be types-only
JoshuaKGoldberg Apr 16, 2024
1c7ef11
Repo is passing build, lint, and typecheck
JoshuaKGoldberg Apr 17, 2024
581937d
Aha, no need for infinite type checking
JoshuaKGoldberg Apr 17, 2024
53d2ab8
Updated snapshot
JoshuaKGoldberg Apr 17, 2024
38716b3
Merge branch 'main' into no-unnecessary-type-parameters
JoshuaKGoldberg Apr 17, 2024
cd0ec0d
Revert "Aha, no need for infinite type checking"
JoshuaKGoldberg Apr 17, 2024
92dbb4f
Simplier general/return logic
JoshuaKGoldberg Apr 19, 2024
88ca7c8
Wow so much simpler
JoshuaKGoldberg Apr 19, 2024
61922bd
Adjusted comments
JoshuaKGoldberg Apr 19, 2024
467172b
Forward along asRepeatedType
JoshuaKGoldberg Apr 21, 2024
69b820f
List -> Item
JoshuaKGoldberg Apr 21, 2024
c485f96
fetchJson, alas
JoshuaKGoldberg Apr 21, 2024
a09c18f
Initial pass of the AST check
JoshuaKGoldberg Apr 22, 2024
c1f3cf5
Merge branch 'main' into no-unnecessary-type-parameters
JoshuaKGoldberg Apr 22, 2024
a8f2dd3
chore: add missing output: nulls in prefer-optional-chain.test.ts
JoshuaKGoldberg Apr 22, 2024
c2384b3
Merge branch 'v8'
JoshuaKGoldberg Apr 23, 2024
e9ac84e
skipConstituentsUpward optimization
JoshuaKGoldberg Jun 4, 2024
a85881b
Docs and naming improvements
JoshuaKGoldberg Jun 5, 2024
db84ba1
Merge branch 'v8' into no-unnecessary-type-parameters
JoshuaKGoldberg Jun 5, 2024
6763e63
Allow introduced convert.test.ts complaint
JoshuaKGoldberg Jun 5, 2024
ed24717
Ah, yes, Prettier
JoshuaKGoldberg Jun 5, 2024
8d9e650
Disable comment for helpers isNodeOfTypeWithConditions
JoshuaKGoldberg Jun 17, 2024
74c04c7
Remove from strict and add an experimental notice
JoshuaKGoldberg Jun 26, 2024
d33970f
shakes fist at nx
JoshuaKGoldberg Jun 26, 2024
9ca4f1d
Merge branch 'v8' into no-unnecessary-type-parameters
JoshuaKGoldberg Jun 26, 2024
94ee0fd
Merge branch 'v8'
JoshuaKGoldberg Jun 26, 2024
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
1 change: 1 addition & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,7 @@ export default tseslint.config(
'error',
{ allowConstantLoopConditions: true },
],
'@typescript-eslint/no-unnecessary-type-parameters': 'error',
'@typescript-eslint/no-var-requires': 'off',
'@typescript-eslint/prefer-literal-enum-member': [
'error',
Expand Down
115 changes: 115 additions & 0 deletions packages/eslint-plugin/docs/rules/no-unnecessary-type-parameters.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
---
description: 'Disallow type parameters that only appear once.'
---

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

> 🛑 This file is source code, not the primary documentation location! 🛑
>
> See **https://typescript-eslint.io/rules/no-unnecessary-type-parameters** for documentation.

This rule forbids type parameters that only appear once in a function, method, or class definition.

Type parameters relate two types.
If a type parameter only appears once, then it is not relating anything.
It can usually be replaced with explicit types such as `unknown`.

At best unnecessary type parameters make code harder to read.
At worst they can be used to disguise unsafe type assertions.

:::warning Early Stage
This rule was recently added to typescript-eslint and still considered experimental.
It might change significantly between minor versions.
Please try it out and give us feedback!
:::
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From chats with @bradzacher and @Josh-Cena: we're roughly ready to merge this rule, but it's still somewhat experimental / something-we-haven't-tried-ourselves-before. So instead of putting in strict for now I'll add this notice and file a followup to move to strict.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(for posterity: the chats were about adding a notice; I felt icky after the fact about both having a notice and leaving it in strict)


## Examples

<Tabs>
<TabItem value="❌ Incorrect">

```ts
function second<A, B>(a: A, b: B): B {
return b;
}

function parseJSON<T>(input: string): T {
return JSON.parse(input);
}

function printProperty<T, K extends keyof T>(obj: T, key: K) {
console.log(obj[key]);
}
```

</TabItem>
<TabItem value="✅ Correct">

```ts
function second<B>(a: unknown, b: B): B {
return b;
}

function parseJSON(input: string): unknown {
return JSON.parse(input);
}

function printProperty<T>(obj: T, key: keyof T) {
console.log(obj[key]);
}

// T appears twice: in the type of arg and as the return type
function identity<T>(arg: T): T {
return arg;
}

// T appears twice: "keyof T" and in the inferred return type (T[K]).
// K appears twice: "key: K" and in the inferred return type (T[K]).
function getProperty<T, K extends keyof T>(obj: T, key: K) {
return obj[key];
}
```

</TabItem>
</Tabs>

## Limitations

Note that this rule allows any type parameter that is used multiple times, even if those uses are via a type argument.
For example, the following `T` is used multiple times by virtue of being in an `Array`, even though its name only appears once after declaration:

```ts
declare function createStateHistory<T>(): T[];
```

This is because the type parameter `T` relates multiple methods in the `T[]` together, making it used more than once.

Therefore, this rule won't report on type parameters used as a type argument.
That includes type arguments given to global types such as `Array` (including the `T[]` shorthand and in tuples), `Map`, and `Set`.

## When Not To Use It

This rule will report on functions that use type parameters solely to test types, for example:

```ts
function assertType<T>(arg: T) {}

assertType<number>(123);
assertType<number>('abc');
// ~~~~~
// Argument of type 'string' is not assignable to parameter of type 'number'.
```

If you're using this pattern then you'll want to disable this rule on files that test types.

## Further Reading

- TypeScript handbook: [Type Parameters Should Appear Twice](https://microsoft.github.io/TypeScript-New-Handbook/everything/#type-parameters-should-appear-twice)
- Effective TypeScript: [The Golden Rule of Generics](https://effectivetypescript.com/2020/08/12/generics-golden-rule/)

## Related To

- eslint-plugin-etc's [`no-misused-generics`](https://github.com/cartant/eslint-plugin-etc/blob/main/docs/rules/no-misused-generics.md)
- wotan's [`no-misused-generics`](https://github.com/fimbullinter/wotan/blob/master/packages/mimir/docs/no-misused-generics.md)
- DefinitelyTyped-tools' [`no-unnecessary-generics`](https://github.com/microsoft/DefinitelyTyped-tools/blob/main/packages/eslint-plugin/docs/rules/no-unnecessary-generics.md)
1 change: 1 addition & 0 deletions packages/eslint-plugin/src/configs/all.ts
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ export = {
'@typescript-eslint/no-unnecessary-type-arguments': 'error',
'@typescript-eslint/no-unnecessary-type-assertion': 'error',
'@typescript-eslint/no-unnecessary-type-constraint': 'error',
'@typescript-eslint/no-unnecessary-type-parameters': 'error',
'@typescript-eslint/no-unsafe-argument': 'error',
'@typescript-eslint/no-unsafe-assignment': 'error',
'@typescript-eslint/no-unsafe-call': 'error',
Expand Down
1 change: 1 addition & 0 deletions packages/eslint-plugin/src/configs/disable-type-checked.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ export = {
'@typescript-eslint/no-unnecessary-template-expression': 'off',
'@typescript-eslint/no-unnecessary-type-arguments': 'off',
'@typescript-eslint/no-unnecessary-type-assertion': 'off',
'@typescript-eslint/no-unnecessary-type-parameters': 'off',
'@typescript-eslint/no-unsafe-argument': 'off',
'@typescript-eslint/no-unsafe-assignment': 'off',
'@typescript-eslint/no-unsafe-call': 'off',
Expand Down
2 changes: 2 additions & 0 deletions packages/eslint-plugin/src/rules/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ import noUnnecessaryTemplateExpression from './no-unnecessary-template-expressio
import noUnnecessaryTypeArguments from './no-unnecessary-type-arguments';
import noUnnecessaryTypeAssertion from './no-unnecessary-type-assertion';
import noUnnecessaryTypeConstraint from './no-unnecessary-type-constraint';
import noUnnecessaryTypeParameters from './no-unnecessary-type-parameters';
import noUnsafeArgument from './no-unsafe-argument';
import noUnsafeAssignment from './no-unsafe-assignment';
import noUnsafeCall from './no-unsafe-call';
Expand Down Expand Up @@ -198,6 +199,7 @@ export default {
'no-unnecessary-type-arguments': noUnnecessaryTypeArguments,
'no-unnecessary-type-assertion': noUnnecessaryTypeAssertion,
'no-unnecessary-type-constraint': noUnnecessaryTypeConstraint,
'no-unnecessary-type-parameters': noUnnecessaryTypeParameters,
'no-unsafe-argument': noUnsafeArgument,
'no-unsafe-assignment': noUnsafeAssignment,
'no-unsafe-call': noUnsafeCall,
Expand Down
Loading
Loading