UNPKG

ts-types-tools

Version:

some type tools for typescript | TS中一些方便的类型工具

27 lines (22 loc) 802 B
import type { NumberToString, StringToNumber } from "./core"; /** * @zh 数字的整数部分. * @en Int part of a number * @example IntPart<-1.5> // -1 * @example IntPart<1.5> // 1 * @example IntPart<-1> // -1 */ export type IntPart<N extends number> = NumberToString<N> extends `${infer I extends number | '' | '-'}.${number}` ? I extends '' ? 0 : I extends '-' ? -0 : I : N; /** * @zh 数字的小数部分. * @en Decimal part of a number * @example DecimalPart<-1.5> // 0.5 * @example DecimalPart<1.5> // 0.5 * @example DecimalPart<-1> // 0 */ export type DecimalPart<N extends number> = NumberToString<N> extends `${number | '' | '-'}.${number}` ? NumberToString<N> extends `${number | '' | '-'}.${infer D}` ? StringToNumber<`0.${D}`> : 0 : 0;