Avatar ·

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

Olá a todos! Comecei a estudar TypeScript recentemente e me deparei com um problema. Tenho uma interface `User` e uma função que recebe dados de uma API. Preciso verificar se o objeto recebido corresponde a essa interface. Aqui está meu código: ```typescript interface User { id: number; name: string; email: string; } function processData(data: unknown) { // Como verificar se data é um User? if (data instanceof User) { // Erro: 'User' se refere apenas a um tipo, mas está sendo usado como um valor aqui console.log(data.name); } } ``` Entendo que `instanceof` não funciona com interfaces, porque elas são apagadas durante a execução. Mas como então verificar se o objeto contém todos os campos necessários com os tipos corretos? Vi que é possível usar type guards personalizados, mas não entendo completamente como escrevê-los para interfaces complexas. Existe alguma abordagem padrão ou melhores práticas para verificar tipos em tempo de execução?