[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[]'.
위의 코드에서, arr1과 arr2는 읽기 전용(read-only) 배열이고, arr3과 arr4는 가변(mutable) 배열입니다. arr2는 arr1의 복사본이므로 가변성 문제가 발생하지 않습니다.
그러나 arr4는 arr3의 복사본이 아니라 같은 배열을 참조하므로, arr4를 수정하면 arr3도 영향을 받습니다. 이러한 가변성 문제는 타입 시스템을 통해 방지할 수 있습니다.
참고 자료:
- TypeScript 공식 문서: https://www.typescriptlang.org/docs/handbook/2/objects.html#readonly-array-types