問題一覧に戻る
中級高度な型
問題33: Readonly'<'T'>'

Readonly'<'T'>'ユーティリティ型を使って、すべてのプロパティを読み取り専用にする方法を学びます。イミュータブルなデータ構造を作成し、意図しない変更を防ぐことができます。

// 変更可能なインターフェース
interface Point {
x: number;
y: number;
}

// Readonly型の使用
type ReadonlyPoint = <Point>;

const origin: ReadonlyPoint = {
x: 0,
y: 0
};

// Readonly型を返す関数
function freezeArray<T>(arr: T[]): <T[]> {
return Object.freeze(arr);
}