Tyescript: Как определить типизацию для строго типизированного массива Array of Array
Уже есть подобный вопрос, единственное отличие состоит в том, что я хочу объявить наборы в d.ts
файл вместо объявления каждый раз.
Я пишу набрав как
interface SomeType {
key1: string[];
key2: number;
}
которые Objects with named properties
тип.
Теперь мне нужно Array with two sub-Arrays
тип,
т.е. (что-то вроде):
TheType : [string[], string[]]
Так что я могу написать
let myVar: TheType;
вместо
let myVar: [string[], string[]];
Я пытался играть с namespace
, module
, declare var
если не повезет, я могу объяснить проблемы с ними, если потребуется, но я просто чувствую, что либо я упускаю что-то очень очевидное, либо это просто невозможно?!
Примечание: обходные пути! Нужны, спасибо!
1 ответ
Я бы смешал расширение интерфейса Array
с общим для создания NestedArray
тип, который вы можете использовать с любым типом. Наличие вложенного типа массива сделает ваши встроенные типы более читабельными:
interface NestedArray<T> extends Array<Array<T>> {}
var x: NestedArray<string> = [['a', 'b'], ['c', 'd'], ['e', 'f']];
var y = x[0]; // y is Array<string>
var z = x[0][1]; // z is string
Используйте с другими типами:
var x: NestadArray<Customer> = [];