T는 number를 상속하고, 만약 T가 정수라면 그것을 반환하고 그렇지 않다면 never를 반환하는 타입 Integer<T>을 완성하라
Please complete type Integer<T>, type T inherits from number, if T is an integer return it, otherwise return never.
type Integer<T extends number> =
number extends T?never:
`${T}` extends `${string}.${string}`?never:T
만약 T에 number 그 자체가 온다면 never를 반환한다.
만약 T를 문자열로 치환했을 때 .이 존재한다면 never를 반환한다.
두 경우가 모두 아닌 경우에 T를 반환한다.
type Integer<T extends number> = `${T}` extends `${bigint}` ? T : never
매우 단순하게 bigint를 상속하는지 확인하는 함수이다.
T가 소수점, Infinity, NaNd이면 never로 들어가는 듯 하다.
https://github.com/type-challenges/type-challenges/issues/18773