readonly
readonly のチェックがされない時がある
const sum = (obj: { foo: number; bar: number; baz: number }) => {
obj.foo = 999999;
return obj.foo + obj.bar + obj.baz;
};
const myObj = {
foo: 0,
bar: 100,
baz: 1000,
} as const;
sum(myObj); ← sum内でfooの書き換えが行われているのに,コンパイルエラーとならない
配列における readonly
const sum = (arr: number[]) => {
return arr.reduce((a, b) => a + b, 0);
};
const myArr = [1, 2, 3, 4] as const;
sum(myArr); ← sum内でarrの書き換えは行わないのに,readonlyに関してのコンパイルエラーとなる
参考
https://qiita.com/uhyo/items/0fd033ff1aed9b4b32dd