【问题标题】:How to use the spread operator in a typescript tuple?如何在打字稿元组中使用扩展运算符?
【发布时间】:2017-12-09 14:42:47
【问题描述】:

我想指定数组其余部分的外观,但不知道数组有多少值。我怎样才能实现这样的目标? (游乐场版here):

type numStrArr = [number, ...string];

let arr: numStrArr = [1, 'hi', 'other string'];

然而,上面的代码在展开运算符处抛出了错误Type expected.

我知道有一个proposal,但我现在如何实现类似的行为?

【问题讨论】:

  • 你应该使用对象而不是数组。
  • 我知道这会起作用,我只是对它如何起作用很感兴趣
  • 我认为这是不可能的。您可以使用[number, string]{0: number, [i: number]: string | number},但它们都将额外的参数输入为number | string,而不是string。你能得到的最接近的可能是[number, string, string, string, string, string, string]
  • 玩了一下,我能想到的最好的方法是扩展 Array 的接口。游乐场链接太长。我真的看不出任何使用对象不能更好地处理的用例......

标签: typescript types tuples spread-syntax


【解决方案1】:

我知道这个问题已有 3 年历史,但现在支持该功能。您需要做的就是将类型更改为可以传播的类型。阅读更多关于它的信息here


// no more error...
type numStrArr = [number, ...string[]];

【讨论】:

    猜你喜欢
    • 2018-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-18
    • 2019-09-26
    • 1970-01-01
    • 2019-06-14
    • 1970-01-01
    相关资源
    最近更新 更多