在C#这样的语言中,我可以声明一个列表列表,如:
List<List<int>> list_of_lists;
在TypeScript中是否有类似的方法来声明强类型数组?我尝试了以下方法,但都没有编译。
var list_of_lists:int[][];
var list_of_lists:Array<int[]>;
int
不是TypeScript中的类型。您可能想要使用number
:
var listOfLists : number[][];
您的操作与Java/C#中的操作完全相同,例如(在类中):
class SomeClass {
public someVariable: Array<Array<AnyTypeYouWant>>;
}
或者作为一个独立变量:
var someOtherVariable: Array<Array<AnyTypeYouWant>>;
最简单的是:
x: Array<Array<Any>>
如果你需要更复杂的东西,你可以这样做:
y: Array<Array<{z:int, w:string, r:Time}>>
@Eugene您可以使用类似Array<Array<[string, number]>>
的东西来定义映射类型
您可以创建自己的自定义类型来创建强类型数组:
type GridRow = GridCell[] //array of cells
const grid: GridRow[] = []; //array of rows
它可能看起来很奇怪,但在TypeScript中,您可以使用以下语法创建数组的类型化数组。
例如,要创建一个数字数组,您可以编写以下内容:
const numbers: number[] = []; // or more verbose Array<number>
要创建一个数字数组数组,您可以编写以下内容:
const numbers: number[][] = []; // or more verbose Array<Array<number>>