Avatar ·

Como saber o tipo de uma variável em TypeScript: typeof, instanceof e verificações personalizadas

Olá a todos! Comecei a estudar TypeScript recentemente e me deparei com um problema: como saber qual tipo uma variável tem durante a execução do programa? Em JavaScript comum, eu usava `typeof`, mas no TS isso nem sempre funciona como espero. Aqui está um exemplo de código que me confunde: ```typescript let value: string | number = "hello"; // Tentando verificar o tipo if (typeof value === "string") { console.log(value.toUpperCase()); // Funciona } value = 42; if (typeof value === "number") { console.log(value.toFixed(2)); // Funciona } // Mas com objetos é mais complicado interface User { name: string; age: number; } interface Admin { name: string; role: string; } function processUser(user: User | Admin) { // Como verificar se é User ou Admin aqui? if (typeof user === "object") { // Isso não ajuda // Como obter o tipo específico? } } ``` Eu entendo que TypeScript é uma extensão do JS, e os tipos existem apenas em tempo de compilação.