O que você realmente quer pode ser simplesmente uma enumeração
Se você estiver procurando por algo que se comporte como uma enumeração (porque vejo que você está definindo um objeto e anexando um ID sequencial 0, 1, 2 e contém um campo de nome que você não deseja digitar errado (por exemplo, nome vs naaame) , é melhor definir uma enumeração porque o ID seqüencial é resolvido automaticamente e fornece a verificação de tipo para você imediatamente.
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
Os valores acima serão mapeados automaticamente, por exemplo, "0" para "Disponível", e você pode acessá-los usando TestStatus.Available. E o Typecript reforçará o tipo quando você passar por aí.
Se você insistir em definir um novo tipo como uma matriz do seu tipo personalizado
Você queria uma matriz de objetos (não exatamente um objeto com as teclas "0", "1" e "2"); portanto, vamos definir o tipo do objeto, primeiro, depois o tipo de uma matriz contendo.
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 }> = []