To, czego naprawdę chcesz, może być po prostu wyliczeniem
Jeśli szukasz czegoś, co zachowuje się jak wyliczenie (ponieważ widzę, że definiujesz obiekt i dołączasz sekwencyjny identyfikator 0, 1, 2 i zawiera on pole nazwy, którego nie chcesz przeliterować (np. Nazwa vs naaame) , lepiej jest zdefiniować wyliczenie, ponieważ sekwencyjny identyfikator jest obsługiwany automatycznie i zapewnia weryfikację typu od razu po wyjęciu z pudełka.
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
Powyższe wartości zostaną automatycznie zamapowane, np. „0” dla „Dostępne”, i można uzyskać do nich dostęp za pomocą TestStatus.Available. A maszynopis wymusi ten typ, gdy go przekażesz.
Jeśli nalegasz na zdefiniowanie nowego typu jako tablicy typu niestandardowego
Chcieliście tablicy obiektów (nie dokładnie obiektu z kluczami „0”, „1” i „2”), więc zdefiniujmy najpierw typ obiektu, a następnie typ tablicy zawierającej.
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 }> = []