实战一
小于 1 分钟
ParseQueryString
'a=1&b=2&c=3&d=4'
=> {a:'1', b: '2', c: '3', d: '4'}
分析
根据 &
来拆分成 key=value
这样的形式
然后处理 key=value
=> {key: value}
然后合并 这个 {key: value}
就是我们最后想要的结果了
我们其实还可以对合并值成数组, 这个数组再处理下, 取出相同的类型
type IsExistInArr<Arr extends unknown[], Item extends unknown> = Arr extends [
infer First,
...infer Rest,
]
? Item extends First
? true
: IsExistInArr<Rest, Item>
: false;
type LikeSetArr<
Arr extends unknown[],
Result extends unknown[] = [],
> = Arr extends [infer First, ...infer Rest]
? IsExistInArr<Result, First> extends true
? LikeSetArr<Rest, Result>
: LikeSetArr<Rest, [...Result, First]>
: Result;