typescript / intermediate
Snippet
Dynamische Payload-Validierung mit benutzerdefinierten Type-Guard-Prädikaten
Externe Daten aus Netzwerkanfragen besitzen den Typ unknown. Benutzerdefinierte Type Guards mit dem Rückgabetyp `payload is TargetType` prüfen unstrukturierte Daten zur Laufzeit und verifizieren deren Struktur typsicher.
snippet.ts
typescript
1
2
3
4
5
6
7
8
9
10
11
12
13
interface UserProfile {username: string;age: number;}function isUserProfile(payload: unknown): payload is UserProfile {return (typeof payload === "object" &&payload !== null &&typeof (payload as Record<string, unknown>).username === "string" &&typeof (payload as Record<string, unknown>).age === "number");}
Erklärung
1
function isUserProfile(payload: unknown): payload is UserProfile
Deklariert ein Typ-Prädikat, das TypeScript anweist, den Typ einzuschränken, wenn die Funktion true zurückgibt.
2
typeof (payload as Record<string, unknown>).username === "string"
Führt Laufzeitprüfungen auf den erwarteten Eigenschaften durch, bevor der Typ zugewiesen wird.