Typescript: How to add an item to a tuple?

前端 未结 3 1708
长情又很酷
长情又很酷 2020-12-21 05:23

Why this produces an error \"A rest element type must be an array type.\"?

type QWE = [boolean, ...T]
                              


        
3条回答
  •  情书的邮戳
    2020-12-21 06:09

    If someone can find it useful, this is a version of Titian's type, with an improvement covering some more cases:

    type R = TupleUnshift // [boolean, number, string]
    
    
    type TupleUnshift = ((a: A, ...r: ForcedTuple) => void) extends (...a: infer R) => any ? R : never
    
    type ForcedTuple =
        T extends [
            infer A,
            infer B,
            infer C,
            infer D,
            infer E,
            infer F,
            infer G,
            infer H,
            infer I,
            infer J,
            infer K,
            infer L,
            infer M,
            infer N,
            infer O,
            infer P,
            infer Q,
            infer R,
            infer S,
            infer T,
            infer U,
            infer V,
            infer W,
            infer X,
            infer Y,
            infer Z
        ]
        ?
        [A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z]
        : T
    

提交回复
热议问题