打字稿:如何为强类型数组定义类型
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[]];
我试过玩namespace
、module
、declare 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> = [];
已经有 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[]];
我试过玩namespace
、module
、declare 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> = [];