【问题标题】:TypeScript: define array type of unknown size where first element is of type A and rest elements are of type BTypeScript:定义未知大小的数组类型,其中第一个元素是 A 类型,其余元素是 B 类型
【发布时间】:2020-04-30 22:50:23
【问题描述】:

我有一个函数将A 类型的元素与B 类型的一些元素数组合并。

函数参数类似于function merge<A, B>(elem: A, ar: B[])。 结果可能类似于[A, B, B, B, ..., B]。 B 元素的数量以及数组的总长度是未知的。

我知道我可以定义像Array<A | B> 这样的类型,但这不会提供完整的类型安全性,因为任何元素都可以是AB。我也知道我可以定义[A, B][A, B, B] 等类型。但据我了解,这些只能用于已知大小的数组。

有没有办法在 TypeScript 中定义像 [A, B, B, B, ..., B] 这样的类型?

【问题讨论】:

    标签: arrays typescript-typings


    【解决方案1】:

    好的,找到了答案。在从版本 3 开始的 typescript 中,您可以定义解构类型,例如 [A, ...[B]] ,这将提供所需的结果。

    您可能还必须强制转换 return 语句 as [A, ...[B]] 以避免类型错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-08
      • 2022-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-22
      • 1970-01-01
      相关资源
      最近更新 更多