如何在打字稿的类型定义中理解`[0,1,2,... 0 []]`?

时间:2020-10-14 15:23:17

标签: typescript

我在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[]的含义。

是否有相关文件?谢谢

1 个答案:

答案 0 :(得分:4)

您需要两条信息来了解这种类型:

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

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

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

相关问题