[[ReadonlyArray (TypeScript)|ReadonlyArray]]と[[読み取り専用プロパティ (TypeScript)|読み取り専用プロパティ]]は似ているようだが、[[ReadonlyArray (TypeScript)|ReadonlyArray]]の方が代入が厳しい。
```ts
let writableArray = ["a", "i", "u"];
let readonlyArray: ReadonlyArray<string> = ["a", "i", "u"];
readonlyArray = writableArray; // 可変なものを不変なものに代入はできる
writableArray = readonlyArray; // 不変なものを可変なものに代入はでいない
// The type 'readonly string[]' is 'readonly' and cannot be assigned to the mutable type 'string[]'.(4104)
// --- readonlyプロパティの場合は相互に代入可能
let writableHuman: { name: string } = { name: "writable" };
let readonlyHuman: { readonly name: string } = { name: "readonly" };
readonlyHuman = writableHuman;
writableHuman = readonlyHuman;
```