jaenny.dev
article thumbnail
[타입챌린지/type-challenge] Flatten
Frontend 2023. 2. 4. 16:17

문제 배열을 받아, 배열을 평탄화하여 반환하시오. 예제: type flatten = Flatten // [1, 2, 3, 4, 5] 풀이 제네릭 타입으로 배열을 받아야 하니 T extends any[]로 배열만 받도록 제한해 줍니다. infer와 spread를 사용해서 T 배열의 첫 원소를 First로 가져옵니다. 만약 빈 배열이라면 First로 가져올 수 없으니 바로 T를 리턴해줍니다. 그런데 지금 구현하려는 Flatten은 1 depth만 평탄화하는 것이 아니고, 모든 배열을 평탄화해야 합니다. 따라서 재귀로 구현해 줄 것입니다. First가 배열이 아니여서, 더 이상 평탄화가 필요없는 경우부터 생각해줍니다. First가 배열이 아니라면, 리턴하려는 배열의 첫 번째 자리에 두고, 나머지 원소들을 확인..