객체 - 중첩된 객체

Changhan·2025년 1월 27일

Typescript

목록 보기
21/29

중첩된 객체의 타입은 어떻게 선언해야 할까?

type NestedPerson = {
  identity: {
    name: string;
    age: number;
  },
  nationality: string;
};

const person: NestedPerson = {
  identity: {
    name: '태연',
    age: 32,
  },
  nationality: '한국인',
};

여기서 의문점이 생길 수 있다. identity의 타입에 있는 객체를 또 다른 타입으로 독립적으로 선언해줄 수 있지 않을까? 그리고 그렇게 했을 때와 하지 않았을 때의 차이점도 있을 수 있다.

위의 코드에서 타입을 독립적으로 선언한 것을 적용한 코드는 아래와 같다.

type TIdentity = {
  name: string;
  age: number;
};
type TPerson = {
  identity: TIdentity;
  nationality: string;
};

구조적으로는 완벽히 동일하다. 하지만 두 경우의 차이는 에러 메세지에 있다.

중첩된 객체의 타입을 독립적으로 선언한 코드에서의 에러 메세지가 해당 타입의 이름으로 보여지기 때문에 좀 더 보기가 편한 것을 볼 수 있다.

(interface로 선언한 타입이라도 위와 동일하게 동작한다)

0개의 댓글