Ce que vous voulez vraiment peut être simplement une énumération
Si vous recherchez quelque chose qui se comporte comme une énumération (parce que je vois que vous définissez un objet et attachez un ID séquentiel 0, 1, 2 et contient un champ de nom que vous ne voulez pas mal orthographier (par exemple, nom vs naaame) , il vaut mieux définir une énumération car l'ID séquentiel est pris en charge automatiquement et vous fournit une vérification de type dès la sortie de la boîte.
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
Les valeurs ci-dessus seront automatiquement mappées, par exemple "0" pour "Disponible", et vous pouvez y accéder en utilisant TestStatus.Available. Et Typescript appliquera le type lorsque vous les passerez.
Si vous insistez pour définir un nouveau type en tant que tableau de votre type personnalisé
Vous vouliez un tableau d'objets (pas exactement un objet avec les clés "0", "1" et "2"), définissons donc le type de l'objet, d'abord, puis un type de tableau contenant.
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 }> = []