array-type
配列に対して `T[]` または `Array<T>` のいずれかを一貫して使用することを要求します。
拡張機能 「plugin:@typescript-eslint/」stylistic"
の ESLint設定 でこのルールが有効になります。
このルールによって報告されたいくつかの問題は、 `--fix` ESLintコマンドラインオプション.
で自動的に修正できます。TypeScript は、配列型を定義する 2 つの同等の方法を提供します: `T[]` と `Array<T>`。 2 つのスタイルは機能的に同等です。コードベース全体で同じスタイルを一貫して使用することで、開発者が配列型を読みやすく理解しやすくなります。
module.exports = {
"rules": {
"@typescript-eslint/array-type": "error"
}
};
Playgroundでこのルールを試す ↗
オプション
このルールは次のオプションを受け入れます
type ArrayOption = 'array' | 'array-simple' | 'generic';
type Options = [
{
/** The array type expected for mutable cases. */
default?: ArrayOption;
/** The array type expected for readonly cases. If omitted, the value for `default` will be used. */
readonly?: ArrayOption;
},
];
const defaultOptions: Options = [{ default: 'array' }];
デフォルト設定では、すべてのミュータブルおよび読み取り専用配列が `'array'` 構文を使用するように強制されます。
"array"
すべての配列型に常に `T[]` または `readonly T[]` を使用します。
- ❌ 不正
- ✅ 正しい
const x: Array<string> = ['a', 'b'];
const y: ReadonlyArray<string> = ['a', 'b'];
Playgroundで開くconst x: string[] = ['a', 'b'];
const y: readonly string[] = ['a', 'b'];
Playgroundで開く"generic"
すべての配列型に常に `Array<T>` または `ReadonlyArray<T>` を使用します。
- ❌ 不正
- ✅ 正しい
const x: string[] = ['a', 'b'];
const y: readonly string[] = ['a', 'b'];
Playgroundで開くconst x: Array<string> = ['a', 'b'];
const y: ReadonlyArray<string> = ['a', 'b'];
Playgroundで開く"array-simple"
単純な型 (つまり、プリミティブ名または型参照のみの型) には `T[]` または `readonly T[]` を使用します。他のすべての型 (共用型、交差型、オブジェクト型、関数型など) には `Array<T>` または `ReadonlyArray<T>` を使用します。
- ❌ 不正
- ✅ 正しい
const a: (string | number)[] = ['a', 'b'];
const b: { prop: string }[] = [{ prop: 'a' }];
const c: (() => void)[] = [() => {}];
const d: Array<MyType> = ['a', 'b'];
const e: Array<string> = ['a', 'b'];
const f: ReadonlyArray<string> = ['a', 'b'];
Playgroundで開くconst a: Array<string | number> = ['a', 'b'];
const b: Array<{ prop: string }> = [{ prop: 'a' }];
const c: Array<() => void> = [() => {}];
const d: MyType[] = ['a', 'b'];
const e: string[] = ['a', 'b'];
const f: readonly string[] = ['a', 'b'];
Playgroundで開く組み合わせマトリックス
このマトリックスには、可能なすべてのオプションの組み合わせと、さまざまな種類の配列に対する期待される結果がリストされています。
defaultOption | readonlyOption | 単純な型を持つ配列 | 単純ではない型を持つ配列 | 単純な型を持つ読み取り専用配列 | 単純ではない型を持つ読み取り専用配列 |
---|---|---|---|---|---|
array | number[] | (Foo & Bar)[] | readonly number[] | readonly (Foo & Bar)[] | |
array | array | number[] | (Foo & Bar)[] | readonly number[] | readonly (Foo & Bar)[] |
array | array-simple | number[] | (Foo & Bar)[] | readonly number[] | ReadonlyArray<Foo & Bar> |
array | generic | number[] | (Foo & Bar)[] | ReadonlyArray<number> | ReadonlyArray<Foo & Bar> |
array-simple | number[] | Array<Foo & Bar> | readonly number[] | ReadonlyArray<Foo & Bar> | |
array-simple | array | number[] | Array<Foo & Bar> | readonly number[] | readonly (Foo & Bar)[] |
array-simple | array-simple | number[] | Array<Foo & Bar> | readonly number[] | ReadonlyArray<Foo & Bar> |
array-simple | generic | number[] | Array<Foo & Bar> | ReadonlyArray<number> | ReadonlyArray<Foo & Bar> |
generic | Array<number> | Array<Foo & Bar> | ReadonlyArray<number> | ReadonlyArray<Foo & Bar> | |
generic | array | Array<number> | Array<Foo & Bar> | readonly number[] | readonly (Foo & Bar)[] |
generic | array-simple | Array<number> | Array<Foo & Bar> | readonly number[] | ReadonlyArray<Foo & Bar> |
generic | generic | Array<number> | Array<Foo & Bar> | ReadonlyArray<number> | ReadonlyArray<Foo & Bar> |
使用しない場合
このルールは、プロジェクトで一貫性を維持するための純粋なスタイルのルールです。配列型のスタイルを一貫させたくない場合は、オフにすることができます。
ただし、一貫性のないスタイルは、プロジェクトの可読性を損なう可能性があることに注意してください。プロジェクトに最適なこのルールの単一のオプションを選択することをお勧めします。