객체

객체 타입을 정의하는 방법

object로 정의하기

let user: object = {
  id: 1,
  name: "건규팍",
};

user.id; //object 형식에 id 속성이 없습니다

타입스크립트의 object 타입은 단순 값이 객체임을 표현하는 것 외에는 아무런 정보도 제공하지 않는 타입이기 때문이다.

객체 리터럴 타입

let user: {
  id: number;
  name: string;
} = {
  id: 1,
  name: "건규팍",
};

user.id;

vscode에서 마우스를 호버링 하면 타입을 알려준다.

특수한 프로퍼티 정의하기

선택적 프로퍼티(Optional Property)

특정 프로퍼티를 상황에 따라 생략하도록 만들고 싶다면 해당 프로퍼티를 선택적 프로퍼티로 만들어주면 된다.

let user: {
  id?: number; // 선택적 프로퍼티가 된 id
  name: string;
} = {
  id: 1,
  name: "이정환",
};

user = {
  name: "홍길동",
};

읽기전용 프로퍼티(Readonly Property)

특정 프로퍼티를 읽기 전용으로 만들고 싶다면 프로퍼티의 이름 앞에 readonly 키워드를 붙이면 된다.

let user: {
  id?: number;
  readonly name: string; // name은 이제 Readonly 프로퍼티가 되었음
} = {
  id: 1,
  name: "이정환",
};

user.name = "dskfd"; // 오류 발생

의도치 않은 프로퍼티의 수정을 방지할 수 있다.