问题 #
实现一个类型 Math.trunc
接收一个字符串或者数字,返回整数部分
type case1 = Trunc<0.1> // '0'
type case1 = Trunc<1.234> // '1'
type case1 = Trunc<12.345> // '12'
type case1 = Trunc<-5.1> // '-5'
type case1 = Trunc<'1.234'> // '1'
type case1 = Trunc<'-10.234'> // '-10'
type case1 = Trunc<10> // '10'
解答 #
type Trunc<T extends number | string> = `${T}` extends `${infer S}.${infer _}` ? S : `${T}`
拆分 #
- 先将 T 转换为字符串
- 再将字符串以小数点分割