재귀 타입
재귀 타입
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