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

Fre*_*ind 3 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[]]
Run Code Online (Sandbox Code Playgroud)

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

有这方面的文件吗?谢谢

Les*_*iak 6

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

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

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

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