logweft.

TS-L4-021 / 튜플과 타입 연산

타입 수준 자연수 덧셈

고급

문제

Build<N>을 길이 N인 unknown 튜플, Add<A,B>를 두 자연수 리터럴의 합으로 정의하세요. 각 수는 0~20입니다.

요구한 타입·변수 이름을 유지하세요. 각 타입 계약이 컴파일되는지를 확인합니다. 코드를 실행하는 문제는 아닙니다.

타입 계약

작은 수 합
type Check = Expect<Equal<Add<2,3>, 5>>;
영 처리
type Check = Expect<Equal<Add<0,4>, 4>>;
힌트

튜플 길이를 자연수로 사용하세요.

해설·정답 보기

두 튜플을 연결한 길이가 합입니다. 재귀 인스턴스화 비용 때문에 입력 범위를 제한합니다.

type Build<N extends number,T extends unknown[]=[]> = T["length"] extends N ? T : Build<N,[...T,unknown]>;
type Add<A extends number,B extends number> = [...Build<A>,...Build<B>]["length"];
모르는 문법은 코드 사전에서 ↗
answer.ts타입 확인

코드는 이 브라우저에 자동 저장돼요.

풀이 결과

코드를 작성하고 채점하기를 눌러보세요.

    학습용으로 제공된 조건을 확인해요. 알고리즘 사용 방식·설계 의도는 해설과 함께 비교해보세요.

    어떤 기록을 찾으세요?

    키워드를 입력하면 기록을 찾아드려요.