constアサーション「as const」とreadonlyの違い
オブジェクトの末尾にconstアサーション「as const」をつけると、オブジェクトすべてのプロパティに「readonly」がついた状態になる。「as const」がついたオブジェクトのプロパティに、再代入はできない。
const foo = { nation: "India", sex: "male", name: "chandora" } as const foo.sex = "female" => Cannot assign to 'sex' because it is a read-only property.
一方、readonlyはプロパティごとにつけられる。
type Person = { name: string, readonly age: number, } const person:Person = { name: "murata", age: 12, } // nameプロパティには再代入できている。 person.name = "nakata" person.age = 33 => Cannot assign to 'age' because it is a read-only property.