Typescript 숫자 리터럴 유형 Y/X(나누기) 방법

지난 게시물에서 우리는 가능하다는 것을 알고 있습니다.

이번 포스팅에서는 나눗셈을 해보도록 하겠습니다.

type CreateArrayWithLengthX<
    LENGTH extends number,
    ACC extends unknown[] = [],
> = ACC['length'] extends LENGTH
    ? ACC
    : CreateArrayWithLengthX<LENGTH, [...ACC,1]>

type Division<Dividend extends number, Divisor extends number, ACC extends unknown[] = [], Counter extends unknown[] = []> = 
    [...ACC,...CreateArrayWithLengthX<Divisor>]['length'] extends [...CreateArrayWithLengthX<Dividend>]['length'] 
    ? [1,...Counter]['length'] 
    : Division<Dividend, Divisor, [...ACC,...CreateArrayWithLengthX<Divisor>],[1,...Counter]>

type result = Division<999, 3> // 333


playground

제한: TS 재귀의 최대 깊이가 1000에 불과하기 때문에 피제수는 999를 초과할 수 없으며 양의 정수로만 작동합니다. 제수는 피제수의 인수여야 합니다.

좋은 웹페이지 즐겨찾기