type JSONType =
      | string
      | boolean
      | number
      | null
      | JSONType[]
      | { [key: string]: JSONType };
    
    const a: JSONType = 'string';
    const b: JSONType = [1, false, { "hi": "json" }];
    const c: JSONType = {
      prop: null,
      arr: [{}],
    }
    

    JSONType 타입 별칭을 선언해보았는데, 이와 같이 재귀 타입을 사용하면 복잡한 구조도 쉽게 표현할 수 있습니다.

    재귀 타입을 통해 더 많은 타입을 만들어낼 수 있습니다. 예를 들어 배열 타입을 거꾸로 뒤집는 것도 가능합니다. [1, 2, 3] 타입이 있다면 [3, 2, 1]로 만드는 셈인데, 어떻게 만들 수 있을지 한번 생각해보세요. 다음 코드를 보기 전에 스스로 만들어보는 연습을 하면 좋습니다. 이 절은 재귀 타입을 다루는 절이므로 재귀 타입을 사용해 만들어보세요. 제일 뒤의 것을 하나씩 앞으로 보내면 됩니다. 제일 뒤의 것은 추론을 통해 가져올 수 있습니다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.