web-dev-qa-db-ja.com

TypeScript-固定長のArray <length>タイプ?

TypeScript型に関する知識の不足を示すリスクがあるため、次の質問があります。

このような配列の型宣言を行うと...

position: Array<number>;

...任意の長さの配列を作成できます。ただし、特定の長さの数値を含む配列、つまりx、y、zコンポーネントの3が必要な場合、固定長配列のタイプを作成できますか?

position: Array<3>

助けや説明があれば感謝します!

53
henryJack

Javascript配列には、配列の長さを受け入れるコンストラクターがあります。

let arr = new Array<number>(3);
console.log(arr); // [undefined × 3]

ただし、これは単なる初期サイズであり、変更の制限はありません。

arr.Push(5);
console.log(arr); // [undefined × 3, 5]

TypeScriptには Tuple types があり、特定の長さとタイプで配列を定義できます。

let arr: [number, number, number];

arr = [1, 2, 3]; // ok
arr = [1, 2]; // Type '[number, number]' is not assignable to type '[number, number, number]'
arr = [1, 2, "3"]; // Type '[number, number, string]' is not assignable to type '[number, number, number]'
97
Nitzan Tomer