問題一覧に戻る
中級高度な型
問題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);
}