Avatar ·

Verificação de tipo de interface em TypeScript: como determinar se um objeto corresponde a uma interface?

Olá, colegas! Comecei a estudar TypeScript e me deparei com um problema que parece elementar, mas não consigo encontrar a solução correta. Eu tenho uma interface: ```typescript interface User { name: string; age: number; email: string; } ``` Estou recebendo dados de uma API como `any` ou `unknown`. Preciso verificar se o objeto obtido corresponde à interface `User` antes de usar seus campos. Em JavaScript, eu escreveria `typeof obj.name === 'string'` e assim por diante, mas em TypeScript quero fazer isso de forma elegante, usando os recursos da linguagem. Tentei escrever `if (obj instanceof User)`, mas o TypeScript reclama que `User` é uma interface, não uma classe. Tentei usar `typeof obj === 'User'` — também não funciona. Pesquisei e encontrei menções sobre type guards e funções personalizadas, mas não entendi completamente como fazer corretamente. Digam-me, como verificar em TypeScript se um objeto corresponde a uma interface? É importante que a verificação funcione também em tempo de compilação (TypeScr