eslint-plugin-typefest 1.0.5 โ 1.0.7
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.
- package/README.md +19 -3
- package/dist/_internal/constrained-type-at-location.d.ts.map +1 -1
- package/dist/_internal/constrained-type-at-location.js.map +1 -1
- package/dist/_internal/function-type-reference-patterns.d.ts +34 -0
- package/dist/_internal/function-type-reference-patterns.d.ts.map +1 -0
- package/dist/_internal/function-type-reference-patterns.js +103 -0
- package/dist/_internal/function-type-reference-patterns.js.map +1 -0
- package/dist/_internal/rule-catalog.d.ts.map +1 -1
- package/dist/_internal/rule-catalog.js +11 -0
- package/dist/_internal/rule-catalog.js.map +1 -1
- package/dist/_internal/rules-registry.d.ts.map +1 -1
- package/dist/_internal/rules-registry.js +22 -0
- package/dist/_internal/rules-registry.js.map +1 -1
- package/dist/_internal/set-membership.d.ts.map +1 -1
- package/dist/_internal/set-membership.js.map +1 -1
- package/dist/_internal/type-checker-compat.d.ts.map +1 -1
- package/dist/_internal/type-checker-compat.js.map +1 -1
- package/dist/_internal/type-reference-node.d.ts +8 -0
- package/dist/_internal/type-reference-node.d.ts.map +1 -1
- package/dist/_internal/type-reference-node.js +14 -0
- package/dist/_internal/type-reference-node.js.map +1 -1
- package/dist/_internal/typefest-config-references.d.ts +2 -1
- package/dist/_internal/typefest-config-references.d.ts.map +1 -1
- package/dist/_internal/typefest-config-references.js +11 -2
- package/dist/_internal/typefest-config-references.js.map +1 -1
- package/dist/_internal/typescript-eslint-node-autofix.js.map +1 -1
- package/dist/plugin.cjs +1094 -138
- package/dist/plugin.cjs.map +4 -4
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +5 -0
- package/dist/plugin.js.map +1 -1
- package/dist/rules/prefer-ts-extras-object-map-values.d.ts +14 -0
- package/dist/rules/prefer-ts-extras-object-map-values.d.ts.map +1 -0
- package/dist/rules/prefer-ts-extras-object-map-values.js +227 -0
- package/dist/rules/prefer-ts-extras-object-map-values.js.map +1 -0
- package/dist/rules/prefer-type-fest-asyncify.d.ts +7 -0
- package/dist/rules/prefer-type-fest-asyncify.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-asyncify.js +79 -0
- package/dist/rules/prefer-type-fest-asyncify.js.map +1 -0
- package/dist/rules/prefer-type-fest-conditional-except.d.ts +7 -0
- package/dist/rules/prefer-type-fest-conditional-except.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-conditional-except.js +94 -0
- package/dist/rules/prefer-type-fest-conditional-except.js.map +1 -0
- package/dist/rules/prefer-type-fest-conditional-keys.d.ts +7 -0
- package/dist/rules/prefer-type-fest-conditional-keys.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-conditional-keys.js +78 -0
- package/dist/rules/prefer-type-fest-conditional-keys.js.map +1 -0
- package/dist/rules/prefer-type-fest-distributed-omit.d.ts +7 -0
- package/dist/rules/prefer-type-fest-distributed-omit.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-distributed-omit.js +67 -0
- package/dist/rules/prefer-type-fest-distributed-omit.js.map +1 -0
- package/dist/rules/prefer-type-fest-distributed-pick.d.ts +7 -0
- package/dist/rules/prefer-type-fest-distributed-pick.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-distributed-pick.js +95 -0
- package/dist/rules/prefer-type-fest-distributed-pick.js.map +1 -0
- package/dist/rules/prefer-type-fest-merge.d.ts +7 -0
- package/dist/rules/prefer-type-fest-merge.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-merge.js +93 -0
- package/dist/rules/prefer-type-fest-merge.js.map +1 -0
- package/dist/rules/prefer-type-fest-pick-index-signature.d.ts +7 -0
- package/dist/rules/prefer-type-fest-pick-index-signature.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-pick-index-signature.js +98 -0
- package/dist/rules/prefer-type-fest-pick-index-signature.js.map +1 -0
- package/dist/rules/prefer-type-fest-set-return-type.d.ts +7 -0
- package/dist/rules/prefer-type-fest-set-return-type.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-set-return-type.js +53 -0
- package/dist/rules/prefer-type-fest-set-return-type.js.map +1 -0
- package/dist/rules/prefer-type-fest-stringified.d.ts +7 -0
- package/dist/rules/prefer-type-fest-stringified.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-stringified.js +73 -0
- package/dist/rules/prefer-type-fest-stringified.js.map +1 -0
- package/dist/rules/prefer-type-fest-union-to-intersection.d.ts +7 -0
- package/dist/rules/prefer-type-fest-union-to-intersection.d.ts.map +1 -0
- package/dist/rules/prefer-type-fest-union-to-intersection.js +114 -0
- package/dist/rules/prefer-type-fest-union-to-intersection.js.map +1 -0
- package/docs/rules/getting-started.md +2 -1
- package/docs/rules/guides/preset-selection-strategy.md +7 -0
- package/docs/rules/overview.md +1 -0
- package/docs/rules/prefer-ts-extras-object-map-values.md +146 -0
- package/docs/rules/prefer-type-fest-asyncify.md +93 -0
- package/docs/rules/prefer-type-fest-conditional-except.md +141 -0
- package/docs/rules/prefer-type-fest-conditional-keys.md +93 -0
- package/docs/rules/prefer-type-fest-distributed-omit.md +92 -0
- package/docs/rules/prefer-type-fest-distributed-pick.md +92 -0
- package/docs/rules/prefer-type-fest-merge.md +161 -0
- package/docs/rules/prefer-type-fest-pick-index-signature.md +93 -0
- package/docs/rules/prefer-type-fest-set-return-type.md +93 -0
- package/docs/rules/prefer-type-fest-stringified.md +134 -0
- package/docs/rules/prefer-type-fest-union-to-intersection.md +118 -0
- package/docs/rules/presets/experimental.md +163 -0
- package/docs/rules/presets/index.md +13 -0
- package/package.json +50 -48
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# prefer-type-fest-union-to-intersection
|
|
2
|
+
|
|
3
|
+
Prefer [`UnionToIntersection`](https://github.com/sindresorhus/type-fest/blob/main/source/union-to-intersection.d.ts) from `type-fest` over custom distributive conditional helpers that convert unions into intersections.
|
|
4
|
+
|
|
5
|
+
This rule lives only in the experimental preset and reports without autofixing.
|
|
6
|
+
|
|
7
|
+
## Targeted pattern scope
|
|
8
|
+
|
|
9
|
+
This rule focuses on the canonical conditional-type recipe that turns a union into an intersection by distributing a function wrapper over the union and then inferring the merged parameter type.
|
|
10
|
+
|
|
11
|
+
- `(Union extends unknown ? (value: Union) => void : never) extends (value: infer Intersection) => void ? Intersection : never`
|
|
12
|
+
- the common assignable variant that returns `Intersection & Union`
|
|
13
|
+
|
|
14
|
+
It intentionally skips unrelated conditional helpers and non-canonical extraction tricks to keep reporting narrow.
|
|
15
|
+
|
|
16
|
+
## What this rule reports
|
|
17
|
+
|
|
18
|
+
This rule reports conditional helpers when all of the following are true:
|
|
19
|
+
|
|
20
|
+
- the inner conditional distributes over the same `Union` type with `extends unknown` or `extends any`
|
|
21
|
+
- the inner true branch wraps that union in a single-parameter function type
|
|
22
|
+
- the outer conditional infers the merged parameter type from a single-parameter function type
|
|
23
|
+
- the outer true branch returns either the inferred type alone or the inferred type intersected with the original union
|
|
24
|
+
|
|
25
|
+
The rule is currently **report-only**. It does not autofix or suggest a replacement yet.
|
|
26
|
+
|
|
27
|
+
## Why this rule exists
|
|
28
|
+
|
|
29
|
+
`UnionToIntersection<Union>` states the intent directly.
|
|
30
|
+
|
|
31
|
+
- Readers do not need to unpack a dense conditional-type trick.
|
|
32
|
+
- The canonical helper is easier to search for across a codebase.
|
|
33
|
+
- Type-Fest owns the edge cases and maintenance burden for the pattern.
|
|
34
|
+
|
|
35
|
+
## โ Incorrect
|
|
36
|
+
|
|
37
|
+
```ts
|
|
38
|
+
type MergeUnion<Union> =
|
|
39
|
+
(Union extends unknown ? (value: Union) => void : never) extends
|
|
40
|
+
(value: infer Intersection) => void
|
|
41
|
+
? Intersection
|
|
42
|
+
: never;
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## โ
Correct
|
|
46
|
+
|
|
47
|
+
```ts
|
|
48
|
+
import type {UnionToIntersection} from "type-fest";
|
|
49
|
+
|
|
50
|
+
type MergeUnion<Union> = UnionToIntersection<Union>;
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Behavior and migration notes
|
|
54
|
+
|
|
55
|
+
- This rule only reports the narrow distributive function-wrapper pattern.
|
|
56
|
+
- It also accepts the `Intersection & Union` variant because that still expresses the same underlying conversion.
|
|
57
|
+
- It ignores unrelated conditionals and other custom extraction helpers that do not match the canonical structure closely enough.
|
|
58
|
+
|
|
59
|
+
## Additional examples
|
|
60
|
+
|
|
61
|
+
### โ Incorrect โ Additional example
|
|
62
|
+
|
|
63
|
+
```ts
|
|
64
|
+
type MergeUnion<Union> =
|
|
65
|
+
(Union extends any ? (value: Union) => void : never) extends
|
|
66
|
+
(value: infer Intersection) => void
|
|
67
|
+
? Intersection & Union
|
|
68
|
+
: never;
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### โ
Correct โ Additional example
|
|
72
|
+
|
|
73
|
+
```ts
|
|
74
|
+
import type {UnionToIntersection} from "type-fest";
|
|
75
|
+
|
|
76
|
+
type MergeUnion<Union> = UnionToIntersection<Union>;
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## ESLint flat config example
|
|
80
|
+
|
|
81
|
+
```ts
|
|
82
|
+
import typefest from "eslint-plugin-typefest";
|
|
83
|
+
|
|
84
|
+
export default [typefest.configs.experimental];
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## When not to use it
|
|
88
|
+
|
|
89
|
+
Disable this rule if your project intentionally prefers hand-written conditional-type recipes for educational reasons or if you are using a different local utility type and do not want to standardize on Type-Fest.
|
|
90
|
+
|
|
91
|
+
## Package documentation
|
|
92
|
+
|
|
93
|
+
TypeFest package documentation:
|
|
94
|
+
|
|
95
|
+
Source file: [`source/union-to-intersection.d.ts`](https://github.com/sindresorhus/type-fest/blob/main/source/union-to-intersection.d.ts)
|
|
96
|
+
|
|
97
|
+
```ts
|
|
98
|
+
import type {UnionToIntersection} from "type-fest";
|
|
99
|
+
|
|
100
|
+
type Union = {a: string} | {b: number};
|
|
101
|
+
|
|
102
|
+
type Combined = UnionToIntersection<Union>;
|
|
103
|
+
//=> {a: string} & {b: number}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
> **Rule catalog ID:** R089
|
|
107
|
+
|
|
108
|
+
## Further reading
|
|
109
|
+
|
|
110
|
+
- [`type-fest` README](https://github.com/sindresorhus/type-fest)
|
|
111
|
+
- [`type-fest` package reference](https://www.npmjs.com/package/type-fest)
|
|
112
|
+
- [TypeScript Handbook: Distributive Conditional Types](https://www.typescriptlang.org/docs/handbook/2/conditional-types.html)
|
|
113
|
+
|
|
114
|
+
## Adoption resources
|
|
115
|
+
|
|
116
|
+
- [Rule adoption checklist](./guides/adoption-checklist.md)
|
|
117
|
+
- [Rollout and fix safety](./guides/rollout-and-fix-safety.md)
|
|
118
|
+
- [Preset selection strategy](./guides/preset-selection-strategy.md)
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Experimental preset
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# ๐งช Experimental
|
|
6
|
+
|
|
7
|
+
Use this preset when you want every stable rule from `all` plus lower-confidence candidate rules that are still being evaluated.
|
|
8
|
+
|
|
9
|
+
## Config key
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
typefest.configs.experimental
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Flat Config example
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
import typefest from "eslint-plugin-typefest";
|
|
19
|
+
|
|
20
|
+
export default [typefest.configs.experimental];
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
This preset **does** require type information, because it layers experimental rules on top of `all`.
|
|
24
|
+
|
|
25
|
+
Use it when you want to trial report-only or still-maturing rules before they graduate into stable presets.
|
|
26
|
+
|
|
27
|
+
## When to use this preset
|
|
28
|
+
|
|
29
|
+
- You want every stable rule from `all`.
|
|
30
|
+
- You are comfortable reviewing noisier report-only diagnostics.
|
|
31
|
+
- You want early visibility into candidate migrations such as `objectMapValues`.
|
|
32
|
+
|
|
33
|
+
## Rollout advice
|
|
34
|
+
|
|
35
|
+
Treat this preset as a proving ground:
|
|
36
|
+
|
|
37
|
+
1. Start with `warn` in one package or folder.
|
|
38
|
+
2. Measure noise and collect false-positive feedback.
|
|
39
|
+
3. Promote only the rules your team finds consistently useful.
|
|
40
|
+
|
|
41
|
+
## Why some candidates were skipped
|
|
42
|
+
|
|
43
|
+
Not every uncovered `type-fest` or `ts-extras` helper becomes an experimental rule immediately.
|
|
44
|
+
|
|
45
|
+
- Some candidates have a clear canonical matcher and are good fits for report-only experimentation.
|
|
46
|
+
- Others are intentionally skipped because their hand-written equivalents are too varied or too semantic to lint accurately yet.
|
|
47
|
+
|
|
48
|
+
Current intentionally skipped examples include `SetParameterType`, `Jsonify`, `SimplifyDeep`, `Entry`, `Entries`, `isPropertyDefined`, and `isPropertyPresent`.
|
|
49
|
+
|
|
50
|
+
Maintainer policy for that decision is documented in [ADR 0016: Experimental rule admission and skip criteria](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/developer/adr/0016-experimental-rule-admission-and-skip-criteria).
|
|
51
|
+
|
|
52
|
+
## Rules in this preset
|
|
53
|
+
|
|
54
|
+
- `Fix` legend:
|
|
55
|
+
- `๐ง` = autofixable
|
|
56
|
+
- `๐ก` = suggestions available
|
|
57
|
+
- `โ` = report only
|
|
58
|
+
|
|
59
|
+
### Experimental additions over `all`
|
|
60
|
+
|
|
61
|
+
| Rule | Fix |
|
|
62
|
+
| ------------------------------------------------------------------------------------------------------------------------------------------------- | :-: |
|
|
63
|
+
| [`prefer-ts-extras-object-map-values`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-object-map-values) | โ |
|
|
64
|
+
| [`prefer-type-fest-asyncify`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-asyncify) | โ |
|
|
65
|
+
| [`prefer-type-fest-conditional-except`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-conditional-except) | โ |
|
|
66
|
+
| [`prefer-type-fest-conditional-keys`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-conditional-keys) | โ |
|
|
67
|
+
| [`prefer-type-fest-distributed-omit`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-distributed-omit) | โ |
|
|
68
|
+
| [`prefer-type-fest-distributed-pick`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-distributed-pick) | โ |
|
|
69
|
+
| [`prefer-type-fest-merge`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-merge) | โ |
|
|
70
|
+
| [`prefer-type-fest-pick-index-signature`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-pick-index-signature) | โ |
|
|
71
|
+
| [`prefer-type-fest-set-return-type`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-set-return-type) | โ |
|
|
72
|
+
| [`prefer-type-fest-stringified`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-stringified) | โ |
|
|
73
|
+
| [`prefer-type-fest-union-to-intersection`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-union-to-intersection) | โ |
|
|
74
|
+
|
|
75
|
+
### Baseline rules inherited from `all`
|
|
76
|
+
|
|
77
|
+
| Rule | Fix |
|
|
78
|
+
| ------------------------------------------------------------------------------------------------------------------------------------------------- | :---: |
|
|
79
|
+
| [`prefer-ts-extras-array-at`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-array-at) | ๐ง |
|
|
80
|
+
| [`prefer-ts-extras-array-concat`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-array-concat) | ๐ง |
|
|
81
|
+
| [`prefer-ts-extras-array-find`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-array-find) | ๐ง |
|
|
82
|
+
| [`prefer-ts-extras-array-find-last`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-array-find-last) | ๐ง |
|
|
83
|
+
| [`prefer-ts-extras-array-find-last-index`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-array-find-last-index) | ๐ง |
|
|
84
|
+
| [`prefer-ts-extras-array-first`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-array-first) | ๐ง ๐ก |
|
|
85
|
+
| [`prefer-ts-extras-array-includes`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-array-includes) | ๐ง ๐ก |
|
|
86
|
+
| [`prefer-ts-extras-array-join`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-array-join) | ๐ง |
|
|
87
|
+
| [`prefer-ts-extras-array-last`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-array-last) | ๐ง ๐ก |
|
|
88
|
+
| [`prefer-ts-extras-as-writable`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-as-writable) | ๐ง |
|
|
89
|
+
| [`prefer-ts-extras-assert-defined`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-assert-defined) | ๐ง ๐ก |
|
|
90
|
+
| [`prefer-ts-extras-assert-error`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-assert-error) | ๐ก |
|
|
91
|
+
| [`prefer-ts-extras-assert-present`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-assert-present) | ๐ง ๐ก |
|
|
92
|
+
| [`prefer-ts-extras-is-defined`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-is-defined) | ๐ง |
|
|
93
|
+
| [`prefer-ts-extras-is-defined-filter`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-is-defined-filter) | ๐ง |
|
|
94
|
+
| [`prefer-ts-extras-is-empty`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-is-empty) | ๐ง |
|
|
95
|
+
| [`prefer-ts-extras-is-equal-type`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-is-equal-type) | ๐ก |
|
|
96
|
+
| [`prefer-ts-extras-is-finite`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-is-finite) | ๐ง |
|
|
97
|
+
| [`prefer-ts-extras-is-infinite`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-is-infinite) | ๐ง |
|
|
98
|
+
| [`prefer-ts-extras-is-integer`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-is-integer) | ๐ง |
|
|
99
|
+
| [`prefer-ts-extras-is-present`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-is-present) | ๐ง |
|
|
100
|
+
| [`prefer-ts-extras-is-present-filter`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-is-present-filter) | ๐ง |
|
|
101
|
+
| [`prefer-ts-extras-is-safe-integer`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-is-safe-integer) | ๐ง |
|
|
102
|
+
| [`prefer-ts-extras-key-in`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-key-in) | ๐ง |
|
|
103
|
+
| [`prefer-ts-extras-not`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-not) | ๐ง |
|
|
104
|
+
| [`prefer-ts-extras-object-entries`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-object-entries) | ๐ง |
|
|
105
|
+
| [`prefer-ts-extras-object-from-entries`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-object-from-entries) | ๐ง |
|
|
106
|
+
| [`prefer-ts-extras-object-has-in`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-object-has-in) | ๐ง ๐ก |
|
|
107
|
+
| [`prefer-ts-extras-object-has-own`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-object-has-own) | ๐ง ๐ก |
|
|
108
|
+
| [`prefer-ts-extras-object-keys`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-object-keys) | ๐ง |
|
|
109
|
+
| [`prefer-ts-extras-object-values`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-object-values) | ๐ง |
|
|
110
|
+
| [`prefer-ts-extras-safe-cast-to`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-safe-cast-to) | ๐ง |
|
|
111
|
+
| [`prefer-ts-extras-set-has`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-set-has) | ๐ง ๐ก |
|
|
112
|
+
| [`prefer-ts-extras-string-split`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-string-split) | ๐ง |
|
|
113
|
+
| [`prefer-type-fest-abstract-constructor`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-abstract-constructor) | ๐ง |
|
|
114
|
+
| [`prefer-type-fest-and-all`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-and-all) | ๐ง |
|
|
115
|
+
| [`prefer-type-fest-array-length`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-array-length) | ๐ง |
|
|
116
|
+
| [`prefer-type-fest-arrayable`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-arrayable) | ๐ง |
|
|
117
|
+
| [`prefer-type-fest-async-return-type`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-async-return-type) | ๐ง |
|
|
118
|
+
| [`prefer-type-fest-conditional-pick`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-conditional-pick) | ๐ง |
|
|
119
|
+
| [`prefer-type-fest-conditional-pick-deep`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-conditional-pick-deep) | ๐ง |
|
|
120
|
+
| [`prefer-type-fest-constructor`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-constructor) | ๐ง |
|
|
121
|
+
| [`prefer-type-fest-except`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-except) | ๐ง |
|
|
122
|
+
| [`prefer-type-fest-if`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-if) | ๐ง |
|
|
123
|
+
| [`prefer-type-fest-iterable-element`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-iterable-element) | ๐ง |
|
|
124
|
+
| [`prefer-type-fest-json-array`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-json-array) | ๐ง |
|
|
125
|
+
| [`prefer-type-fest-json-object`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-json-object) | ๐ง |
|
|
126
|
+
| [`prefer-type-fest-json-primitive`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-json-primitive) | ๐ง |
|
|
127
|
+
| [`prefer-type-fest-json-value`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-json-value) | ๐ก |
|
|
128
|
+
| [`prefer-type-fest-keys-of-union`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-keys-of-union) | ๐ง |
|
|
129
|
+
| [`prefer-type-fest-less-than`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-less-than) | ๐ง |
|
|
130
|
+
| [`prefer-type-fest-less-than-or-equal`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-less-than-or-equal) | ๐ง |
|
|
131
|
+
| [`prefer-type-fest-literal-union`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-literal-union) | ๐ง |
|
|
132
|
+
| [`prefer-type-fest-merge-exclusive`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-merge-exclusive) | ๐ง |
|
|
133
|
+
| [`prefer-type-fest-non-empty-tuple`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-non-empty-tuple) | ๐ง |
|
|
134
|
+
| [`prefer-type-fest-omit-index-signature`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-omit-index-signature) | ๐ง |
|
|
135
|
+
| [`prefer-type-fest-optional`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-optional) | ๐ง |
|
|
136
|
+
| [`prefer-type-fest-or-all`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-or-all) | ๐ง |
|
|
137
|
+
| [`prefer-type-fest-partial-deep`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-partial-deep) | ๐ง |
|
|
138
|
+
| [`prefer-type-fest-primitive`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-primitive) | ๐ง |
|
|
139
|
+
| [`prefer-type-fest-promisable`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-promisable) | ๐ง |
|
|
140
|
+
| [`prefer-type-fest-readonly-deep`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-readonly-deep) | ๐ง |
|
|
141
|
+
| [`prefer-type-fest-require-all-or-none`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-require-all-or-none) | ๐ง |
|
|
142
|
+
| [`prefer-type-fest-require-at-least-one`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-require-at-least-one) | ๐ง |
|
|
143
|
+
| [`prefer-type-fest-require-exactly-one`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-require-exactly-one) | ๐ง |
|
|
144
|
+
| [`prefer-type-fest-require-one-or-none`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-require-one-or-none) | ๐ง |
|
|
145
|
+
| [`prefer-type-fest-required-deep`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-required-deep) | ๐ง |
|
|
146
|
+
| [`prefer-type-fest-schema`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-schema) | ๐ง |
|
|
147
|
+
| [`prefer-type-fest-set-non-nullable`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-set-non-nullable) | ๐ง |
|
|
148
|
+
| [`prefer-type-fest-set-optional`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-set-optional) | ๐ง |
|
|
149
|
+
| [`prefer-type-fest-set-readonly`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-set-readonly) | ๐ง |
|
|
150
|
+
| [`prefer-type-fest-set-required`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-set-required) | ๐ง |
|
|
151
|
+
| [`prefer-type-fest-simplify`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-simplify) | ๐ง |
|
|
152
|
+
| [`prefer-type-fest-tagged-brands`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-tagged-brands) | ๐ง |
|
|
153
|
+
| [`prefer-type-fest-tuple-of`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-tuple-of) | ๐ง |
|
|
154
|
+
| [`prefer-type-fest-union-member`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-union-member) | ๐ง |
|
|
155
|
+
| [`prefer-type-fest-union-to-tuple`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-union-to-tuple) | ๐ง |
|
|
156
|
+
| [`prefer-type-fest-unknown-array`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-unknown-array) | ๐ง |
|
|
157
|
+
| [`prefer-type-fest-unknown-map`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-unknown-map) | ๐ง |
|
|
158
|
+
| [`prefer-type-fest-unknown-record`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-unknown-record) | ๐ง |
|
|
159
|
+
| [`prefer-type-fest-unknown-set`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-unknown-set) | ๐ง |
|
|
160
|
+
| [`prefer-type-fest-unwrap-tagged`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-unwrap-tagged) | ๐ง |
|
|
161
|
+
| [`prefer-type-fest-value-of`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-value-of) | ๐ง |
|
|
162
|
+
| [`prefer-type-fest-writable`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-writable) | ๐ง |
|
|
163
|
+
| [`prefer-type-fest-writable-deep`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-writable-deep) | ๐ง |
|
|
@@ -13,6 +13,7 @@ Use one of these presets based on how aggressively you want to enforce plugin ru
|
|
|
13
13
|
- [๐ ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended-type-checked) โ [`typefest.configs["recommended-type-checked"]`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended-type-checked)
|
|
14
14
|
- [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) โ [`typefest.configs.strict`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict)
|
|
15
15
|
- [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) โ [`typefest.configs.all`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all)
|
|
16
|
+
- [๐งช](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/experimental) โ [`typefest.configs.experimental`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/experimental)
|
|
16
17
|
- [๐ ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/type-fest-types) โ [`typefest.configs["type-fest/types"]`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/type-fest-types)
|
|
17
18
|
- [โด๏ธ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/ts-extras-type-guards) โ [`typefest.configs["ts-extras/type-guards"]`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/ts-extras-type-guards)
|
|
18
19
|
|
|
@@ -41,6 +42,7 @@ Related guides:
|
|
|
41
42
|
- [๐ ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended-type-checked) โ [`typefest.configs["recommended-type-checked"]`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended-type-checked)
|
|
42
43
|
- [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) โ [`typefest.configs.strict`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict)
|
|
43
44
|
- [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) โ [`typefest.configs.all`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all)
|
|
45
|
+
- [๐งช](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/experimental) โ [`typefest.configs.experimental`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/experimental)
|
|
44
46
|
- [๐ ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/type-fest-types) โ [`typefest.configs["type-fest/types"]`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/type-fest-types)
|
|
45
47
|
- [โด๏ธ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/ts-extras-type-guards) โ [`typefest.configs["ts-extras/type-guards"]`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/ts-extras-type-guards)
|
|
46
48
|
|
|
@@ -76,6 +78,7 @@ Related guides:
|
|
|
76
78
|
| [`prefer-ts-extras-object-has-in`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-object-has-in) | ๐ง ๐ก | [๐ก](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended) [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) [โด๏ธ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/ts-extras-type-guards) |
|
|
77
79
|
| [`prefer-ts-extras-object-has-own`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-object-has-own) | ๐ง ๐ก | [๐ก](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended) [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) [โด๏ธ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/ts-extras-type-guards) |
|
|
78
80
|
| [`prefer-ts-extras-object-keys`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-object-keys) | ๐ง | [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) |
|
|
81
|
+
| [`prefer-ts-extras-object-map-values`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-object-map-values) | โ | [๐งช](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/experimental) |
|
|
79
82
|
| [`prefer-ts-extras-object-values`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-object-values) | ๐ง | [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) |
|
|
80
83
|
| [`prefer-ts-extras-safe-cast-to`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-safe-cast-to) | ๐ง | [๐ ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended-type-checked) [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) [โด๏ธ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/ts-extras-type-guards) |
|
|
81
84
|
| [`prefer-ts-extras-set-has`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-ts-extras-set-has) | ๐ง ๐ก | [๐ ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended-type-checked) [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) [โด๏ธ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/ts-extras-type-guards) |
|
|
@@ -85,9 +88,14 @@ Related guides:
|
|
|
85
88
|
| [`prefer-type-fest-array-length`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-array-length) | ๐ง | [๐ ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended-type-checked) [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) |
|
|
86
89
|
| [`prefer-type-fest-arrayable`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-arrayable) | ๐ง | [๐ข](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/minimal) [๐ก](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended) [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) [๐ ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/type-fest-types) |
|
|
87
90
|
| [`prefer-type-fest-async-return-type`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-async-return-type) | ๐ง | [๐ก](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended) [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) [๐ ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/type-fest-types) |
|
|
91
|
+
| [`prefer-type-fest-asyncify`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-asyncify) | โ | [๐งช](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/experimental) |
|
|
92
|
+
| [`prefer-type-fest-conditional-except`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-conditional-except) | โ | [๐งช](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/experimental) |
|
|
93
|
+
| [`prefer-type-fest-conditional-keys`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-conditional-keys) | โ | [๐งช](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/experimental) |
|
|
88
94
|
| [`prefer-type-fest-conditional-pick`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-conditional-pick) | ๐ง | [๐ก](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended) [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) [๐ ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/type-fest-types) |
|
|
89
95
|
| [`prefer-type-fest-conditional-pick-deep`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-conditional-pick-deep) | ๐ง | [๐ก](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended) [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) [๐ ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/type-fest-types) |
|
|
90
96
|
| [`prefer-type-fest-constructor`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-constructor) | ๐ง | [๐ก](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended) [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) [๐ ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/type-fest-types) |
|
|
97
|
+
| [`prefer-type-fest-distributed-omit`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-distributed-omit) | โ | [๐งช](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/experimental) |
|
|
98
|
+
| [`prefer-type-fest-distributed-pick`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-distributed-pick) | โ | [๐งช](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/experimental) |
|
|
91
99
|
| [`prefer-type-fest-except`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-except) | ๐ง | [๐ข](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/minimal) [๐ก](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended) [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) [๐ ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/type-fest-types) |
|
|
92
100
|
| [`prefer-type-fest-if`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-if) | ๐ง | [๐ก](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended) [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) [๐ ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/type-fest-types) |
|
|
93
101
|
| [`prefer-type-fest-iterable-element`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-iterable-element) | ๐ง | [๐ก](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended) [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) [๐ ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/type-fest-types) |
|
|
@@ -99,12 +107,14 @@ Related guides:
|
|
|
99
107
|
| [`prefer-type-fest-less-than`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-less-than) | ๐ง | [๐ก](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended) [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) [๐ ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/type-fest-types) |
|
|
100
108
|
| [`prefer-type-fest-less-than-or-equal`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-less-than-or-equal) | ๐ง | [๐ก](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended) [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) [๐ ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/type-fest-types) |
|
|
101
109
|
| [`prefer-type-fest-literal-union`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-literal-union) | ๐ง | [๐ก](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended) [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) [๐ ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/type-fest-types) |
|
|
110
|
+
| [`prefer-type-fest-merge`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-merge) | โ | [๐งช](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/experimental) |
|
|
102
111
|
| [`prefer-type-fest-merge-exclusive`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-merge-exclusive) | ๐ง | [๐ก](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended) [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) [๐ ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/type-fest-types) |
|
|
103
112
|
| [`prefer-type-fest-non-empty-tuple`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-non-empty-tuple) | ๐ง | [๐ก](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended) [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) [๐ ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/type-fest-types) |
|
|
104
113
|
| [`prefer-type-fest-omit-index-signature`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-omit-index-signature) | ๐ง | [๐ก](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended) [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) [๐ ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/type-fest-types) |
|
|
105
114
|
| [`prefer-type-fest-optional`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-optional) | ๐ง | [๐ก](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended) [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) [๐ ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/type-fest-types) |
|
|
106
115
|
| [`prefer-type-fest-or-all`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-or-all) | ๐ง | [๐ก](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended) [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) [๐ ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/type-fest-types) |
|
|
107
116
|
| [`prefer-type-fest-partial-deep`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-partial-deep) | ๐ง | [๐ก](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended) [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) [๐ ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/type-fest-types) |
|
|
117
|
+
| [`prefer-type-fest-pick-index-signature`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-pick-index-signature) | โ | [๐งช](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/experimental) |
|
|
108
118
|
| [`prefer-type-fest-primitive`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-primitive) | ๐ง | [๐ข](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/minimal) [๐ก](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended) [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) [๐ ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/type-fest-types) |
|
|
109
119
|
| [`prefer-type-fest-promisable`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-promisable) | ๐ง | [๐ข](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/minimal) [๐ก](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended) [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) [๐ ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/type-fest-types) |
|
|
110
120
|
| [`prefer-type-fest-readonly-deep`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-readonly-deep) | ๐ง | [๐ก](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended) [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) [๐ ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/type-fest-types) |
|
|
@@ -118,10 +128,13 @@ Related guides:
|
|
|
118
128
|
| [`prefer-type-fest-set-optional`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-set-optional) | ๐ง | [๐ก](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended) [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) [๐ ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/type-fest-types) |
|
|
119
129
|
| [`prefer-type-fest-set-readonly`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-set-readonly) | ๐ง | [๐ก](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended) [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) [๐ ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/type-fest-types) |
|
|
120
130
|
| [`prefer-type-fest-set-required`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-set-required) | ๐ง | [๐ก](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended) [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) [๐ ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/type-fest-types) |
|
|
131
|
+
| [`prefer-type-fest-set-return-type`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-set-return-type) | โ | [๐งช](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/experimental) |
|
|
121
132
|
| [`prefer-type-fest-simplify`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-simplify) | ๐ง | [๐ก](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended) [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) [๐ ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/type-fest-types) |
|
|
133
|
+
| [`prefer-type-fest-stringified`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-stringified) | โ | [๐งช](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/experimental) |
|
|
122
134
|
| [`prefer-type-fest-tagged-brands`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-tagged-brands) | ๐ง | [๐ก](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended) [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) [๐ ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/type-fest-types) |
|
|
123
135
|
| [`prefer-type-fest-tuple-of`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-tuple-of) | ๐ง | [๐ก](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended) [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) [๐ ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/type-fest-types) |
|
|
124
136
|
| [`prefer-type-fest-union-member`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-union-member) | ๐ง | [๐ก](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended) [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) [๐ ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/type-fest-types) |
|
|
137
|
+
| [`prefer-type-fest-union-to-intersection`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-union-to-intersection) | โ | [๐งช](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/experimental) |
|
|
125
138
|
| [`prefer-type-fest-union-to-tuple`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-union-to-tuple) | ๐ง | [๐ก](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended) [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) [๐ ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/type-fest-types) |
|
|
126
139
|
| [`prefer-type-fest-unknown-array`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-unknown-array) | ๐ง | [๐ก](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended) [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) [๐ ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/type-fest-types) |
|
|
127
140
|
| [`prefer-type-fest-unknown-map`](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/prefer-type-fest-unknown-map) | ๐ง | [๐ก](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/recommended) [๐ด](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/strict) [๐ฃ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/all) [๐ ](https://nick2bad4u.github.io/eslint-plugin-typefest/docs/rules/presets/type-fest-types) |
|