Introdução
Sempre gostei do TypeScript, especialmente no backend, usando NestJS. No entanto, a necessidade de validações separadas para garantir que os dados correspondam aos tipos declarados sempre me incomodou. Foi com esse problema em mente que comecei o projeto TS Typed.

O Problema
Quando desenvolvo aplicações backend, utilizo NestJS e costumo usar class-validator, class-transformer e ValidationPipe para validação de DTOs. No entanto, a tipagem do TypeScript e as regras dos decorators podem entrar em conflito. Por exemplo, um DTO pode esperar um número, mas o decorator está validando uma string.
TS Typed: Uma Solução
TS Typed é uma biblioteca open source que adiciona validação de tipos em tempo de execução a projetos TypeScript, incluindo aplicações NestJS. A ideia é usar os próprios tipos do TypeScript para gerar validações em runtime, sem duplicar definições em schemas ou decorators. Isso permite que a biblioteca lance um StrictTypeError caso um valor não corresponda ao tipo esperado.
Exemplo Prático com NestJS
Com TS Typed, um DTO de cadastro de usuário pode ficar assim: import { CPF, Email, FullName } from '@ts-typed/validators'; import { TypeErrorResponse } from '@ts-typed/nestjs'; export class CreateUserDto { fullName!: FullName; @TypeErrorResponse('CPF inválido') cpf!: CPF; email!: Email; age!: number; }
Conclusão
TS Typed é uma solução promissora para a validação de tipos em tempo de execução no TypeScript, especialmente para aplicações NestJS. Embora ainda em fase alpha, já apresenta funcionalidades promissoras para facilitar o desenvolvimento de aplicações. Boas práticas operacionais incluem testar e avaliar o projeto antes de sua implementação em produção.