打字稿:如何为强类型数组定义类型

Tyescript: How to define typings for Strongly typed Array of Array

已经有 a similar question,唯一不同的是我想在 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[]];

我试过namespacemoduledeclare var但运气不好,我可以和他们一起解释问题如果需要,但我只是觉得要么我遗漏了一些非常明显的东西,要么根本不可能?!

注意:解决方法!需要,谢谢!

我会将扩展 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> = [];