CopyTupleCopyArr은 객체 타입이지만 배열을 값으로 받을 수 있습니다. 이러한 현상이 가능한 이유는 구조적 타이핑 때문입니다(구조적 타이핑은 2.13절에서 좀 더 자세하게 알아봅니다).

    다른 타입으로부터 값을 가져오면서 수식어를 붙일 수도 있습니다. 읽기 전용으로 만들려면 readonly를, 옵셔널로 만들려면 ? 수식어를 붙이면 됩니다.

    interface Original {
      name: string;
      age: number;
      married: boolean;
    }
    type Copy = {
      readonly [key in keyof Original]?: Original[key];
    }
    
    /*
    type Copy = {
      readonly name?: string | undefined;
      readonly age?: number | undefined;
      readonly married?: boolean | undefined;
    }
    */
    
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.