Skip to content

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