재귀 타입

재귀 타입

function fibonacci(num) {
  if (num <= 1) return 1
  return fibonacci(num - 1) + fibonacci(num - 2);
}
  • 함수가 자기 자신을 다시 호출하는 재귀 함수처럼 타입스크립트에도 재귀 타입이 있다.

type Recursive = {
  name: string;
  children: Recursive[];
}

const recur1: Recursive = {
  name: 'test',
  children: [],
}

const recur2: Recursive = {
  name: 'test',
  children: [
    { name: 'test2', children: [] },
    { name: 'test3', children: [] },
  ]
}
  • 자기 자신을 타입으로 다시 사용하는 타입을 재귀 타입이라 한다.

컨디셔널 타입에서도 사용 가능

타입 인수로 사용하는 것은 불가능

  • 이 경우는 타입 인수를 쓰지 않는 방식으로 수정해야함

재귀 타입도 맥시멈 콜스택과 비슷한 에러 발생 가능

  • 재귀 타입을 선언할 때가 아닌 사용할 때 에러가 발생

복잡한 구조도 쉽게 표현 가능

  • 재귀 타입을 사용하는 대표적인 예시는 JSON

  • 이와 같이 재귀 타입을 사용하면 복잡한 구조도 쉽게 표현 가능

  • 배열 타입을 거꾸로 뒤집는 것도 가능

  • 매개변수 순서를 바꾸는 타입 (매개변수는 반공변성)

Last updated