【问题标题】:How to understand `[0, 1, 2, ...0[]]` in type definition in typescript?如何理解 typescript 类型定义中的 `[0, 1, 2, ...0[]]`?
【发布时间】:2020-10-14 23:41:31
【问题描述】:

我在Typescript: deep keyof of a nested object 中看到了一些这样的类型定义:

type Prev = [never, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
    11, 12, 13, 14, 15, 16, 17, 18, 19, 20, ...0[]]

我不明白...0[] 的最后一部分是什么意思。

有这方面的文件吗?谢谢

【问题讨论】:

  • 表示... 20]... 20, 0]... 20, 0, 0]等。

标签: typescript


【解决方案1】:

你需要两条信息来理解这种类型:

元组类型的最后一个元素可以是...X 形式的剩余元素,其中X 是一个数组类型。剩余元素表示元组类型是开放式的,并且可能具有零个或多个数组元素类型的附加元素。例如,[number, ...string[]] 表示具有number 元素后跟任意数量的string 元素的元组。

  • 您可以将一种类型限制为一个常量值:
const x: 0 = 0;
const y: 0 = 1; // ERROR: Type '1' is not assignable to type '0'.

因此,元组类型中的尾随...0[] 表示:任意数量的零

【讨论】:

    猜你喜欢
    • 2017-11-28
    • 1970-01-01
    • 2018-09-26
    • 2013-07-15
    • 2014-03-23
    • 2017-05-02
    • 2020-11-21
    • 2013-12-07
    • 1970-01-01
    相关资源
    最近更新 更多