Kommt wirklich darauf an, was du versuchst zu tun. Typen sind Dokumentationen in Typoskript, daher möchten Sie die Absicht zeigen, wie dieses Ding beim Erstellen des Typs verwendet werden soll.
Option 1: Wenn Benutzer während ihres Lebens möglicherweise einige, aber nicht alle Attribute haben
Machen Sie alle Attribute optional
type User = {
attr0?: number
attr1?: string
}
Option 2: Wenn Variablen, die Benutzer enthalten, mit null beginnen können
type User = {
...
}
let u1: User = null;
Wenn es hier darum geht, das Benutzerobjekt zu deklarieren, bevor bekannt ist, was ihm zugewiesen wird, möchten Sie wahrscheinlich auf let u1:Usereine Zuweisung verzichten.
Option 3: Was Sie wahrscheinlich wollen
Die Prämisse von Typoskript besteht darin, sicherzustellen, dass Sie dem mentalen Modell entsprechen, das Sie in Typen skizzieren, um Fehler zu vermeiden. Wenn Sie einem Objekt nacheinander Dinge hinzufügen möchten, ist dies eine Angewohnheit, die TypeScript versucht, Sie dazu zu bringen, dies nicht zu tun.
Wahrscheinlicher ist, dass Sie einige lokale Variablen erstellen und diese dann der benutzerhaltigen Variablen zuweisen möchten, wenn sie bereit ist, ein vollwertiger Benutzer zu sein. Auf diese Weise bleibt Ihnen niemals ein teilweise geformter Benutzer übrig. Diese Dinge sind eklig.
let attr1: number = ...
let attr2: string = ...
let user1: User = {
attr1: attr1,
attr2: attr2
}
uservom TypUser | {}oder seinPartial<User>, oder Sie müssen denUserTyp neu definieren , um ein leeres Objekt zuzulassen. Im Moment sagt Ihnen der Compiler korrekt, dass diesuserkein a istUser.