【发布时间】:2019-05-27 20:18:05
【问题描述】:
为什么会产生错误“A rest element type must be an array type.”?
type QWE<T extends [number, string]> = [boolean, ...T]
^^^^ the error is here
【问题讨论】:
-
我猜这与
T的通用性有关,因为即使T extends any[]也会发出相同的错误。 -
在 3.0 之前,我们不能将元组或泛型类型参数传播到函数,这必须实现。同样,rest in tuples 目前只支持数组,没有人实现将其他元组传播到给定元组的其余部分的能力
-
@TitianCernicova-Dragomir 我只是想请你回答,但对
never的回答分心了)无论如何,所以没有办法以某种方式修改元组?没有办法在元组的开头或结尾添加一些东西?附言我很高兴表示感谢并选择您的答案 -
一开始可以通过将元组传播到一个函数并提取参数来完成,如果你愿意,我可以在答案中提供它。最后,我认为有一些不推荐的技巧涉及递归类型别名,但明确不推荐
-
@TitianCernicova-Dragomir 是的,我当然想要!尤其是因为我不太了解您所写的方法:) 提前致谢!
标签: typescript typescript-typings