[英]TypeScript: define array type of unknown size where first element is of type A and rest elements are of type B
我有一个 function 将A
类型的元素与B
类型的一些元素数组合并。
function arguments 类似于function merge<A, B>(elem: A, ar: B[])
。 结果可能类似于[A, B, B, B, ..., B]
。 B 元素的数量以及总数组长度是未知的。
我知道我可以定义一个像Array<A | B>
Array<A | B>
但这不会提供完整的类型安全性,因为任何元素都可以是A
或B
。 我也知道我可以定义[A, B]
, [A, B, B]
等类型。 但据我了解,这些只能用于已知尺寸的 arrays 。
有没有办法在 TypeScript 中定义像[A, B, B, B, ..., B]
这样的类型?
好的,找到了这个问题的答案。 在从版本 3 开始的 typescript 中,您可以定义解构类型,如[A, ...[B]]
,这将给出所需的结果。
您可能还必须将 return 语句转换as [A, ...[B]]
以避免类型错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.