[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