3. 인덱싱(Indexing)
1. 배열 요소 접근
- 자바스크립트에서는 다음과 같이 배열의 요소에 접근했다.
const arr = ["Thor", "Hulk"];
arr[0]; // 'Thor'
- 타입스크립트에서는 인터페이스를 이용하여 다음과 같이 인덱싱 타입을 정의할 수 있다.
interface StringArray {
[index: number]: string;
}
const arr: StringArray = ["Thor", "Hulk"];
arr[0]; // 'Thor'
- 배열의 인덱스의 타입은
number
이고, 이 인덱스로 특정 요소에 접근했을 때 해당 요소의 반환 타입은 string
이라는 것을 명시했다.
2. 타입으로 배열 변경 제한하기
- 배열에 강한 타입을 적용함과 동시에 배열의 요소를 변경하지 못하게 하려면 다음과 같이 인터페이스 내에
readonly
를 추가한다.
interface ReadonlyStringArray {
readonly [index: number]: string;
}
const arr: ReadonlyStringArray = ["Thor", "Hulk"];
arr[2] = "Capt"; // error
References