🔒
TypeScript readonlyとas constの使い方
はじめに
TypeScriptにおいて、変数やプロパティの再代入を防ぐために、readonly
キーワード、as const
構文、そしてReadonly<T>
型が提供されています。これらの機能は、コードの安全性を向上させ、不具合を未然に防ぐことに役立ちます。本記事では、これらの違いと、特に関数での利用法に焦点を当てて解説します。
readonly 修飾子
readonly
修飾子は、クラスやインターフェースのプロパティに適用されます。この修飾子が付与されたプロパティは、再代入が不可能となります。
class Example {
readonly prop: string = "Hello";
}
interface ExampleInterface {
readonly prop: string;
}
Readonly<T> 型
Readonly<T>
型は、型T
の全てのプロパティを読み取り専用にします。これにより、オブジェクト全体を簡単にreadonly
にすることができます。
interface Example {
prop: string;
}
const example: Readonly<Example> = { prop: "Hello" };
as const
構文
as const
構文を利用すると、リテラル型のオブジェクトや配列を作成することができます。これにより、全てのプロパティや要素がreadonly
となります。
const example = {
prop: "Hello"
} as const;
まとめ
TypeScriptのreadonly
関連の機能は、変数やプロパティの不要な再代入を防ぐことで、コードの安全性を向上させます。これらの機能を適切に利用することで、バグを予防し、メンテナンス性の高いコードを書くことができます。
Discussion