Überprüfung des Interface-Typs in TypeScript: Wie bestimmt man, ob ein Objekt einem Interface entspricht?
Hallo Kollegen! Ich habe angefangen, TypeScript zu lernen, und bin auf ein Problem gestoßen, das elementar erscheint, aber ich finde keine richtige Lösung. Ich habe ein Interface:
```typescript
interface User {
name: string;
age: number;
email: string;
}
```
Ich erhalte Daten von einer API als `any` oder `unknown`. Ich muss überprüfen, ob das erhaltene Objekt dem Interface `User` entspricht, bevor ich seine Felder verwende. In JavaScript würde ich `typeof obj.name === 'string'` und so weiter schreiben, aber in TypeScript möchte ich dies elegant mit den Sprachfunktionen machen.
Ich habe versucht, `if (obj instanceof User)` zu schreiben, aber TypeScript meckert, dass `User` ein Interface und keine Klasse ist. Ich habe versucht, `typeof obj === 'User'` zu verwenden – funktioniert auch nicht. Ich habe gegoogelt und Erwähnungen von type guards und benutzerdefinierten Funktionen gefunden, aber ich habe nicht ganz verstanden, wie man es richtig macht.
Könnt ihr mir sagen, wie man in TypeScript überprüft, ob ein Objekt einem Interface entspricht? Wichtig ist, dass die Überprüfung auch zur Kompilierzeit funktioniert (TypeScr
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen