Skip to content
← Back to rules

typescript/no-duplicate-type-constituents 正しさ

This rule is turned on by default when type-aware linting is enabled.
💭 This rule requires type information.
An auto-fix is available for this rule.

何を行うか

このルールは、ユニオン型またはインターセクション型の重複する要素を禁止します。

なぜ悪いのか

ユニオン型およびインターセクション型内の重複する要素は目的がなく、コードの読みづらさを増す可能性があります。これは誤りである可能性が高いです。

このルールに対して 不適切 なコードの例:

ts
type T1 = "A" | "A";

type T2 = A | A | B;

type T3 = { a: string } & { a: string };

type T4 = [A, A];

type T5 = "foo" | "bar" | "foo";

このルールに対して 適切 なコードの例:

ts
type T1 = "A" | "B";

type T2 = A | B | C;

type T3 = { a: string } & { b: string };

type T4 = [A, B];

type T5 = "foo" | "bar" | "baz";

設定

このルールは、次のプロパティを持つ設定オブジェクトを受け入れます。

ignoreIntersections

type: boolean

default: false

インターセクション型内の重複する型を無視するかどうか。 true にすると、type T = A & A を許可します。

ignoreUnions

type: boolean

default: false

ユニオン型内の重複する型を無視するかどうか。 true にすると、type T = A | A を許可します。

使用方法

設定ファイルまたは CLI でこのルールを 有効化 するには、次のように使用できます:

json
{
  "rules": {
    "typescript/no-duplicate-type-constituents": "error"
  }
}
bash
oxlint --type-aware --deny typescript/no-duplicate-type-constituents

参照