TypeScriptのReadonlyの使い所を調べてみた
function foo(config: { readonly bar: number, readonly bas: number }) { // .. } let config = { bar: 123, bas: 123 }; foo(config); // You can be sure that `config` isn't changed 🌹
オブジェクト型のプロパティをreadonlyにできる
readonlyと宣言されているプロパティを書き換えようとするとコンパイルエラーとなる
こちらの記事の結論によると qiita.com
可能な限りプロパティにreadonlyを付けましょう。特に、関数が引数としてオブジェクトを受け取る場合はreadonlyの使用を徹底しましょう。 とある
jsのconstのように『そのプロパティを勝手に変更するかもしれない』という意思表示と捉えられるので付けておくのが良さそう
readonlyは長い
記事にもあるように、わざわざreadoly
を書くのは長すぎるのでReadonly<T>
型を使うと良さそう
しかし、ネストしたオブジェクトに効果がないとのことなので注意が必要