TypeScript · Senior · Frage 7 von 75
Wozu braucht man Branded Types?
type UserId = string & { readonly __brand: 'UserId' };- 1Um allen Strings zur Laufzeit eine Eigenschaft
__brandzu geben - 2Um gleiche Formen zu unterscheiden, etwa
UserIdundOrderId - 3Um den Vergleich von String-Typen im Compiler zu beschleunigen
Antwort zeigen
Richtige Antwort: Um gleiche Formen zu unterscheiden, etwa UserId und OrderId
Erklärung
Strukturelle Typisierung hält alle Strings für kompatibel, also kompiliert deleteUser(orderId). Eine Marke ist eine vorgetäuschte Eigenschaft, die nur in Typen existiert; den Wert erzeugt eine Konstruktorfunktion mit Prüfung (toUserId(s): UserId). So bildet man nominale Typisierung nach.