在TypeScript中创建强类型数组数组

sil*_*orb 58 typescript

在像C#这样的语言中,我可以声明一个列表列表,如:

List<List<int>> list_of_lists;
Run Code Online (Sandbox Code Playgroud)

是否有类似的方法在TypeScript中声明一个强类型的数组数组?我尝试了以下方法,但都没有编译.

var list_of_lists:int[][];
var list_of_lists:Array<int[]>;
Run Code Online (Sandbox Code Playgroud)

Pet*_*son 90

int不是TypeScript中的类型.您可能想要使用number:

var listOfLists : number[][];
Run Code Online (Sandbox Code Playgroud)

  • @PeterOlson 如果我有这种格式的数组数组 - `[ [string, number], [string, number], ... ]` ,是否可以强类型化? (5认同)
  • @silentorb不用担心; 您的问题可能会帮助将来寻找如何在TypeScript中声明数组数组的人们. (3认同)
  • for an array of array of different types `var entries: [string, number][] = []` (3认同)
  • 虽然它不是强类型的 (2认同)

小智 28

你完全像在Java/C#中那样,例如(在一个类中):

class SomeClass {
    public someVariable: Array<Array<AnyTypeYouWant>>;
}
Run Code Online (Sandbox Code Playgroud)

或者作为独立变量:

var someOtherVariable: Array<Array<AnyTypeYouWant>>;
Run Code Online (Sandbox Code Playgroud)


小智 9

@Eugene你可以使用类似的东西Array<Array<[string, number]>>来定义Map类型

  • 这似乎应该是对该人评论的回应,而不是单独的答案。 (4认同)

小智 5

最简单的是:

x: Array<Array<Any>>
Run Code Online (Sandbox Code Playgroud)

而且,如果您需要更复杂的东西,您可以执行以下操作:

y: Array<Array<{z:int, w:string, r:Time}>>
Run Code Online (Sandbox Code Playgroud)


Leo*_*doX 5

您可以创建自己的自定义类型来创建强类型数组:

type GridRow = GridCell[]   //array of cells
const grid: GridRow[] = []; //array of rows
Run Code Online (Sandbox Code Playgroud)