问题 #
实现 StartsWith<T, U>
它接受两种精确的字符串类型,并返回 T
是否以 U
开头
type case1 = StartsWith<'abc', 'ac'> // false
type case2 = StartsWith<'abc', 'ab'> // true
type case3 = StartsWith<'abc', 'abcd'> // false
type case4 = StartsWith<'', 'abcd'> // false
type case5 = StartsWith<'abc', 'a'> // true
type case6 = StartsWith<'abc', ''> // true
解答 #
type StartsWith<T extends string, U extends string> = T extends `${U}${infer _R}` ? true : false
拆分 #
- 直接用
ts
字符串分配特性解决