So ermitteln Sie den Typ einer Variable in TypeScript: typeof, instanceof und benutzerdefinierte Prüfungen
Hallo zusammen! Ich habe gerade angefangen, TypeScript zu lernen, und bin auf ein Problem gestoßen: Wie finde ich zur Laufzeit heraus, welchen Typ eine Variable hat? In normalem JavaScript habe ich `typeof` verwendet, aber in TS funktioniert das nicht immer so, wie ich es erwarte.
Hier ist ein Beispielcode, der mich verwirrt:
```typescript
let value: string | number = "hello";
// Versuche, den Typ zu prüfen
if (typeof value === "string") {
console.log(value.toUpperCase()); // Funktioniert
}
value = 42;
if (typeof value === "number") {
console.log(value.toFixed(2)); // Funktioniert
}
// Bei Objekten wird es schwieriger
interface User {
name: string;
age: number;
}
interface Admin {
name: string;
role: string;
}
function processUser(user: User | Admin) {
// Wie prüfe ich hier, ob es User oder Admin ist?
if (typeof user === "object") { // Das hilft nicht
// Wie bekomme ich den konkreten Typ?
}
}
```
Ich verstehe, dass TypeScript eine Erweiterung von JS ist und Typen nur während der