[typescript] 가변성 문제 예시 코드
// Read-only array
let arr1: readonly number[] = [1, 2, 3];
let arr2: readonly number[] = arr1;

// Mutable array
let arr3: number[] = [4, 5, 6];
let arr4: number[] = arr3;

arr4.push(7); // OK
arr2.push(4); // Error: Property 'push' does not exist on type 'readonly number[]'.

위의 코드에서, arr1arr2읽기 전용(read-only) 배열이고, arr3arr4가변(mutable) 배열입니다. arr2arr1의 복사본이므로 가변성 문제가 발생하지 않습니다. 그러나 arr4arr3의 복사본이 아니라 같은 배열을 참조하므로, arr4를 수정하면 arr3도 영향을 받습니다. 이러한 가변성 문제는 타입 시스템을 통해 방지할 수 있습니다.

참고 자료: