O que é typia e para que serve?
\n\ntypia é uma biblioteca poderosa para TypeScript que fornece verificação de tipos em tempo de execução (runtime type validation) com uma característica única: ela gera o código de verificação durante a compilação (compile-time), e não durante a execução. Isso a torna uma das bibliotecas mais rápidas para validação de dados no ecossistema TypeScript.
\n\nPrincipais problemas que o typia resolve:
\n- \n
- Desempenho: Ao contrário de bibliotecas populares (zod, yup, io-ts), o typia não usa reflexão ou decoradores. Em vez disso, ele gera código de verificação otimizado durante a compilação, proporcionando um ganho de velocidade de 10 a 100 vezes. \n
- Segurança de tipos: Você obtém a garantia de que os dados provenientes de fontes externas (API, banco de dados, formulários) correspondem às suas interfaces TypeScript. \n
- Mínimo boilerplate: Você não precisa escrever esquemas de validação separados — o typia usa seus tipos TypeScript existentes. \n
- Suporte a tipos complexos: Union, intersection, conditional types, mapped types — tudo funciona "pronto para uso". \n
A biblioteca é especialmente útil para:
\n- \n
- Desenvolvimento backend em Node.js com TypeScript \n
- Aplicações frontend que exigem validação de formulários ou respostas de API \n
- Arquitetura de microsserviços, onde a velocidade de serialização/desserialização é importante \n
- Projetos onde o desempenho e a segurança de tipos são críticos \n
Instalação
\n\nA instalação do typia consiste em duas etapas: a própria biblioteca e o transformador TypeScript (compilador).
\n\nPasso 1. Instalação via npm
\nnpm install typia\n# ou\nyarn add typia\n# ou\npnpm add typia\n\nPasso 2. Instalação do transformador
\nnpm install --save-dev typia-transform\n# ou\nyarn add -D typia-transform\n# ou\npnpm add -D typia-transform\n\nPasso 3. Configuração do tsconfig.json
\nAdicione o plugin ao seu tsconfig.json:
{\n "compilerOptions": {\n "plugins": [\n {\n "transform": "typia-transform"\n }\n ]\n }\n}\n\nPasso 4. Uso com ttypescript (recomendado)
\nInstale o ttypescript para transformação automática:
npm install --save-dev ttypescript\nEm seguida, substitua tsc por ttsc nos seus scripts do package.json:
{\n "scripts": {\n "build": "ttsc",\n "start": "node dist/index.js"\n }\n}\n\nImportante: o typia requer TypeScript versão 4.4 ou superior. Sem o transformador, a biblioteca não funcionará.
\n\nInício rápido com exemplo de código
\n\nVamos criar um exemplo simples de validação de dados de usuário.
\n\nimport typia from "typia";\n\n// Definindo a interface\ninterface IUser {\n id: number;\n name: string;\n email: string;\n age: number;\n isActive: boolean;\n}\n\n// Criando a função de validação\nconst validateUser = typia.createValidate<IUser>();\n\n// Dados de teste\nconst testData = {\n id: 1,\n name: "Ivan Petrov",\n email: "ivan@example.com",\n age: 30,\n isActive: true,\n};\n\n// Validação\nconst result = validateUser(testData);\n\nif (result.success) {\n console.log("Dados válidos:", result.data);\n} else {\n console.log("Erro de validação:", result.errors);\n}\n\n// Exemplo com dados incorretos\nconst badData = {\n id: "não é número", // Deveria ser number\n name: "Ivan",\n email: "não é email",\n age: -5,\n isActive: "sim", // Deveria ser boolean\n};\n\nconst badResult = validateUser(badData);\nconsole.log("Erros:", badResult.errors);\n\nEste exemplo mostra como é fácil validar dados usando apenas a interface TypeScript. Sem esquemas ou decoradores adicionais!
\n\nMétodos e funções principais
\n\n1. typia.
Também na biblioteca
Injeção de Dependência (Dependency Injection) em C++: contêineres e prática
Autorização e autenticação em PHP: guia completo com exemplos
gRPC para Go (Golang): bibliotecas, exemplos e guia prático
Valibot para TypeScript: guia completo com exemplos
OpenAPI / Swagger para Java: guia completo com exemplos