typescript/no-redundant-type-constituents 正しさ
何を行うか
このルールは、ユニオンとインターセクションの型構成要素の冗長なものを禁止します。
なぜ問題なのか
ユニオン型およびインターセクション型の一部の構成要素は、TypeScript の型システムのルールにより冗長になることがあります。このような冗長な構成要素は価値を追加せず、型の読みやすさや理解を難しくする可能性があります。
例
このルールに対して 誤り なコードの例:
ts
// ユニオン内では `unknown` は冗長
type T1 = string | unknown;
// ユニオン内では `any` は冗長
type T2 = string | any;
// ユニオン内では `never` は冗長
type T3 = string | never;
// より広い型より広いリテラル型
type T4 = string | "hello";
// サブセットとなるオブジェクト型
type T5 = { a: string } | { a: string; b: number };このルールに対して 正しい コードの例:
ts
type T1 = string | number;
type T2 = "hello" | "world";
type T3 = { a: string } | { b: number };
// インターセクション内の `unknown` は意味を持つ
type T4 = string & unknown;
// インターセクション内の `never` は意味を持つ
type T5 = string & never;使用方法
設定ファイルまたは CLI でこのルールを 有効化 するには、以下のいずれかを使用できます:
json
{
"rules": {
"typescript/no-redundant-type-constituents": "error"
}
}bash
oxlint --type-aware --deny typescript/no-redundant-type-constituents