TypeScript では T[] ではなく ReadonlyArray<T> を使おう
BRANK

TL;DR公開 API では T[] を避け, ReadonlyArray<T> を使いましょう. 内部実装でのみArray<T>を使うのはOKArray<T> ではなく ReadonlyArray<T> を使おう以下のコードには受け取った配列をソートして表示する sortLog 関数と, 0番目の要素を 999 にした配列を表示する setLog 関数を定義して使用していますconst sortLog = (array: Array<number>): void => { console.log(array.sort((a, b) => a - b)); }; const setLog = (array: Array<number>): void => { array[0] = 999; console.log(array); }; const array = [2, 1, 3]; sortLog(array); setLog(array); console.log(array); Array.prototype.sort や array[index] = value は破壊的変更をする仕様なため, 意図せず呼び出し元の配列を変更してしまいます. これを防ぐために ReadonlyArray<T> を使いますこのように Array.prototype.sort や array[index] = value をしようとすると型エラーになり間違いに気づくことができます破壊的変更をしない代わりのメソッドを使うと以下のようになりますconst sortLog = (array: ReadonlyArray<number>): void => { console.log(array.toSorted((a, b) => a - b)); };…

zenn.dev
Related Topics: TypeScript