Создать строго типизированный массив массивов в TypeScript
На таком языке, как C#, я могу объявить список списков, например:
List<List<int>> list_of_lists;
Есть ли аналогичный способ объявления строго типизированного массива массивов в TypeScript? Я попробовал следующие подходы, но ни один из них не компилируется.
var list_of_lists:int[][];
var list_of_lists:Array<int[]>;
6 ответов
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>>