Typescript类型体操 - Join

题目

中文

实现类型版本的 Array.join, Join<T, U> 接受数组 T 和 string 或者 number 类型 U 作为泛型参数, 并返回 U 连接数组 T 后的字符串.

English

Implement the type version of Array.join, Join<T, U> takes an Array T, string or number U and returns the Array T with U stitching up.

答案

type Stringify = string | number | bigint | boolean | null | undefined;
type Join<
    T extends Stringify[],
    U extends Stringify,
    S extends Stringify = ''
> = T extends [infer L extends string, ...infer R extends string[]]
    ? Join<R, U, '' extends S ? `${L}` : `${S}${U}${L}`>
    : S;

在线演示

posted @ 2022-11-08 01:41  Laggage  阅读(162)  评论(0)    收藏  举报