Avatar ·

Cómo saber el tipo de una variable en TypeScript: typeof, instanceof y comprobaciones personalizadas

¡Hola a todos! Acabo de empezar a aprender TypeScript y me encontré con un problema: ¿cómo saber qué tipo tiene una variable durante la ejecución del programa? En JavaScript normal usaba `typeof`, pero en TS no siempre funciona como espero. Aquí hay un ejemplo de código que me confunde: ```typescript let value: string | number = "hello"; // Intento verificar el tipo if (typeof value === "string") { console.log(value.toUpperCase()); // Funciona } value = 42; if (typeof value === "number") { console.log(value.toFixed(2)); // Funciona } // Pero con objetos es más complicado interface User { name: string; age: number; } interface Admin { name: string; role: string; } function processUser(user: User | Admin) { // ¿Cómo verifico aquí si es User o Admin? if (typeof user === "object") { // Esto no ayuda // ¿Cómo obtengo el tipo concreto? } } ``` Entiendo que TypeScript es una extensión de JS y los tipos solo existen en la etapa