Comment connaître le type d'une variable en TypeScript : typeof, instanceof et vérifications personnalisées
Bonjour à tous ! Je viens de commencer à apprendre TypeScript et j'ai rencontré un problème : comment connaître le type d'une variable pendant l'exécution du programme ? En JavaScript classique, j'utilisais `typeof`, mais en TS cela ne fonctionne pas toujours comme je l'attends.
Voici un exemple de code qui me trouble :
```typescript
let value: string | number = "hello";
// J'essaie de vérifier le type
if (typeof value === "string") {
console.log(value.toUpperCase()); // Fonctionne
}
value = 42;
if (typeof value === "number") {
console.log(value.toFixed(2)); // Fonctionne
}
// Mais avec les objets, c'est plus compliqué
interface User {
name: string;
age: number;
}
interface Admin {
name: string;
role: string;
}
function processUser(user: User | Admin) {
// Comment vérifier ici si c'est User ou Admin ?
if (typeof user === "object") { // Cela n'aide pas
// Comment obtenir le type concret ?
}
}
```
Je comprends que TypeScript est une surcouche de JS, et que les types n'existent qu'au stade