Создать строго типизированный массив массивов в 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>>
Другие вопросы по тегам