您真正想要的可能只是一个枚举
如果您正在寻找某种类似于枚举的行为(因为我看到您正在定义一个对象并附加一个顺序ID 0、1、2,并且包含一个您不想拼写错误的名称字段(例如,name vs naaame) ,最好定义一个枚举,因为顺序ID会自动处理,并为您提供类型验证。
enum TestStatus {
Available, // 0
Ready, // 1
Started, // 2
}
class Test {
status: TestStatus
}
var test = new Test();
test.status = TestStatus.Available; // type and spelling is checked for you,
// and the sequence ID is automatic
上面的值将被自动映射,例如,“ Available”为“ 0”,您可以使用访问它们TestStatus.Available。当您传递这些文字时,Typescript将强制使用该文字。
如果您坚持将新类型定义为自定义类型的数组
您需要一个对象数组(不完全是具有键“ 0”,“ 1”和“ 2”的对象),因此让我们先定义对象的类型,然后再定义包含数组的类型。
class TestStatus {
id: number
name: string
constructor(id, name){
this.id = id;
this.name = name;
}
}
type Statuses = Array<TestStatus>;
var statuses: Statuses = [
new TestStatus(0, "Available"),
new TestStatus(1, "Ready"),
new TestStatus(2, "Started")
]
let someArray: Array<{ id: number, name: string }> = []