[typescript] 인터페이스의 선택적 속성과 읽기 전용 속성

TypeScript에서는 인터페이스를 사용하여 객체의 형태를 정의할 수 있습니다. 이 포스트에서는 TypeScript 인터페이스에서 선택적 속성(optional property)과 읽기 전용 속성(read-only property)을 어떻게 정의하고 사용하는지 살펴보겠습니다.

인터페이스의 선택적 속성

일반적으로 TypeScript에서는 인터페이스에 포함된 모든 속성이 필수적으로 존재해야 합니다. 그러나 때로는 모든 속성이 필요하지 않을 수 있습니다. 이때 선택적 속성을 사용하여 인터페이스를 정의할 수 있습니다. 선택적 속성은 속성 이름 뒤에 물음표(?)를 붙여 정의할 수 있습니다.

다음은 선택적 속성을 가진 인터페이스의 예시입니다.

interface User {
  id: number;
  name: string;
  age?: number; // 선택적 속성
}

위의 예시에서 age 속성은 선택적으로 존재할 수 있습니다.

인터페이스의 읽기 전용 속성

읽기 전용 속성은 해당 속성이 객체 생성 이후 변경되지 않도록 보장하는 기능을 제공합니다. 이를 위해서는 속성 이름 앞에 readonly 키워드를 붙여 정의합니다.

다음은 읽기 전용 속성을 가진 인터페이스의 예시입니다.

interface Point {
  readonly x: number; // 읽기 전용 속성
  readonly y: number;
}

위의 예시에서 xy 속성은 객체가 생성된 이후에는 변경되지 않습니다.

결론

TypeScript에서는 선택적 속성과 읽기 전용 속성을 통해 객체의 형태를 더욱 유연하게 정의할 수 있습니다. 선택적 속성을 사용하여 필수적이지 않은 속성을 정의하고, 읽기 전용 속성을 통해 객체의 불변성을 보장할 수 있습니다.

더 많은 정보 및 예제 코드는 TypeScript 공식 문서에서 확인할 수 있습니다.