# 529-实现Absolute
# 题目描述
实现一个接收 string,number 或 bigInt 类型参数的Absolute
类型,返回一个正数字符串。
例如
type Test = -100;
type Result = Absolute<Test>; // expected to be "100"
# 分析
这个题本质也是字符的推断匹配,但是由于入参是 number 类型的,所以在进行推断匹配前需要进行一次转化,对于 ts 来讲,也非常简单:
type NumberToString<T extends number> = `${T}`;
// Case1 = '100'
type Case1 = NumberToString<100>;
转换成字符后,可以直接进行 -
号的匹配,有 -
号,就只保留剩余的字符,否则全部保留即可。
# 题解
type Absolute<T extends number | string | bigint> = `${T}` extends `-${infer S}`
? // 有 - 号,保留剩余的字符
`${S}`
: // 否则保留原字符即可
`${T}`;
# 知识点
- number 转 string
- 字符推断匹配套路:
A extends `-${infer R}`