타입 챌린지 18 - Length of Tuple

소파의 벨로그·2025년 2월 23일

타입챌린지

목록 보기
5/131

문제 링크

문제

배열(튜플)을 받아 길이를 반환하는 제네릭 Length<T>를 구현하세요.

내 풀이

type Length<T extends readonly any[]> = T['length']

관련 개념

타입 뒤의 [${프로퍼티명}]을 통해 해당 타입 내의 프로퍼티의 타입을 사용할 수 있다.

참고로 number[]와 같은 꼴의 'length는 숫자 리터럴이 아닌 number가 나온다

튜플이라는 뜻을 살리기 위해 readonly 속성을 앞에 붙였다

다른사람의 풀이

type Length<T extends any> = T extends { length : infer R } ? R : never;

infer타입을 통해 추론을 하는 경우도 있었다.

0개의 댓글