TypeScript: Wie erstelle ich ein Interface, bei dem genau eine von zwei Eigenschaften erforderlich ist?
Hallo zusammen! Ich schreibe eine TypeScript-Anwendung zur Auftragsverarbeitung. Ich habe ein Interface für einen Benutzer, der entweder registriert (dann hat er `userId`) oder ein Gast (dann hat er `guestToken`) sein kann. Aber das Wichtigste ist, dass der Benutzer genau eines dieser beiden Felder haben muss, nicht beide gleichzeitig und keines von beiden.
So habe ich es versucht:
```typescript
interface User {
name: string;
email: string;
userId?: number;
guestToken?: string;
}
```
Das Problem ist jedoch, dass TypeScript das Erstellen eines Objekts erlaubt, bei dem beide Felder fehlen oder beide gleichzeitig vorhanden sind. Zum Beispiel:
```typescript
const user1: User = { name: "Anna", email: "a@mail.ru" }; // Weder userId noch guestToken – kein Fehler
const user2: User = { name: "Ivan", email:
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen
Blogs
Arbeiten mit Datenbanken in Rust: PostgreSQL und MongoDB