Readonly 配列と不変データ
ReadonlyArray を使って、意図しない変更を防ぎます。
「Readonly 配列と不変データ」はCoddyKit上の無料TypeScript Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはTypeScript Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 TypeScript Academyコースには全4レッスンが含まれています。
ようこそ
配列に対するreadonly修飾子
const ids: readonly number[] = [1, 2, 3];
// ids.push(4); // Error
// ids[0] = 99; // Error
console.log(ids[0]); // OK — reading is fineReadonlyArray<T>ジェネリック形式
const names: ReadonlyArray<string> = ['Alice', 'Bob'];
// names.push('Charlie'); // Error関数からreadonly配列を返す
function getConfig(): readonly string[] {
return ['host', 'port', 'db'];
}不変な関数パラメーター
function sum(nums: readonly number[]): number {
return nums.reduce((a, b) => a + b, 0);
// nums.push(99); // Error inside function
}リテラル配列に対するas const
const colors = ['red', 'green', 'blue'] as const;
// type: readonly ['red', 'green', 'blue']
// colors.push('yellow'); // ErrorReadonlyはディープフリーズではない
const users: readonly { name: string }[] = [{ name: 'Alice' }];
// users.push({}); // Error
users[0].name = 'Bob'; // Allowed — object itself is mutableReadonly<T>による深い不変性
type ImmutableUser = Readonly<{ name: string; scores: readonly number[] }>;
const u: ImmutableUser = { name: 'Alice', scores: [90, 85] };
// u.name = 'Bob'; // Error
// u.scores.push(100); // Error変更可能な配列とreadonly配列の代入
const ro: readonly number[] = [1, 2];
const mutable: number[] = ro; // Error!readonly配列を使用する場合
スプレッドで新しい変更可能な配列を作成する
const base: readonly number[] = [1, 2, 3];
const extended: number[] = [...base, 4]; // new mutable arrayクイックチェック
まとめ
よくある質問
「Readonly 配列と不変データ」レッスンは無料ですか?
はい。「Readonly 配列と不変データ」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、TypeScript Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 TypeScript Academyコースには全4レッスンが含まれています。
「Readonly 配列と不変データ」で何を学びますか?
ReadonlyArray を使って、意図しない変更を防ぎます。 ブラウザで直接実行するハンズオンコードでTypeScript Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
TypeScript Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのTypeScript Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「Readonly 配列と不変データ」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このTypeScript Academyレッスンでコードを書いて実行できますか?
はい。すべてのTypeScript Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 型付き配列: T[] と Array
- Readonly 配列と不変データ
- タプル: 固定長の型付き配列
- 列挙型:数値定数と文字列定数