Avatar ·

Verificación de tipo de interfaz en TypeScript: ¿cómo determinar si un objeto cumple con una interfaz?

¡Hola, colegas! Empecé a estudiar TypeScript y me encontré con un problema que parece elemental, pero no puedo encontrar la solución correcta. Tengo una interfaz: ```typescript interface User { name: string; age: number; email: string; } ``` Recibo datos de una API como `any` o `unknown`. Necesito verificar si el objeto obtenido cumple con la interfaz `User` antes de usar sus campos. En JavaScript escribiría `typeof obj.name === 'string'` y así sucesivamente, pero en TypeScript quiero hacerlo de manera elegante usando las capacidades del lenguaje. Intenté escribir `if (obj instanceof User)`, pero TypeScript se queja de que `User` es una interfaz, no una clase. Intenté usar `typeof obj === 'User'` — tampoco funciona. Busqué en Google y encontré menciones sobre type guards y funciones personalizadas, pero no entendí completamente cómo hacerlo correctamente. Díganme, ¿cómo verificar en TypeScript que un objeto cumple con una interfaz? Es importante que la verificación funcione tanto en tiempo de compilación (TypeScr