Те, що ви дійсно хочете, може бути просто перерахуванням
Якщо ви шукаєте те, що поводиться як перерахування (тому що я бачу, ви визначаєте об'єкт і додаєте послідовний ідентифікатор 0, 1, 2 і містить поле імені, яке ви не хочете неправильно написати (наприклад, ім'я проти naaame) , вам краще визначити перерахування, оскільки послідовний ідентифікатор береться автоматично і забезпечує перевірку типу для вас поза полем.
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
Наведені вище значення будуть автоматично відображатися, наприклад, "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 }> = []