readonly
としてマークすることができます。これにより、関数的に作業することができます(予期しない変更は良くありません)。interface
とtype
の定義にreadonly
を使うこともできます:readonly
として宣言することもできます。次のように、宣言箇所またはコンストラクタで初期化することができます。Readonly
型はT
型をとり、そのすべてのプロパティをreadonly
とマークします。以下にデモを示します:Props
とState
には不変(immutable)であるとマークすることができます:readonly
としてマークする必要はありません。Reactは既に内部でそれを行っています。ReadonlyArray<T>
インターフェースが付属しています。const
との相違点const
readonly
readonly
は、プロパティを私が変更することはできないことを保証しますが、(型互換性のための理由で)その保証を持たない人にそれを渡すと、変更できてしまいます。もちろん、iMutateFoo
が「foo.bar
に変更を加えない」と言っている場合、コンパイラは以下のように正しくエラーフラグを立てます: