Lo que realmente quieres puede ser simplemente una enumeración
Si está buscando algo que se comporte como una enumeración (porque veo que está definiendo un objeto y adjuntando un ID secuencial 0, 1, 2 y contiene un campo de nombre que no desea escribir mal (por ejemplo, nombre vs nombre) , es mejor que defina una enumeración porque la identificación secuencial se ocupa automáticamente y proporciona una verificación de tipo de forma inmediata.
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
Los valores anteriores se asignarán automáticamente, por ejemplo, "0" para "Disponible", y puede acceder a ellos mediante TestStatus.Available. Y Typecript impondrá el tipo cuando pases esos.
Si insiste en definir un nuevo tipo como una matriz de su tipo personalizado
Querías una matriz de objetos (no exactamente un objeto con las teclas "0", "1" y "2"), así que definamos primero el tipo de objeto, luego un tipo de matriz que contiene.
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 }> = []