TypeScript
Fluxo
- Ler
tsconfig, package type, bundler, runtime e versões. - Identificar fronteiras não confiáveis e tipos públicos.
- Modelar estados válidos com unions, narrowing e invariantes.
- Inferir internamente e anotar APIs onde o contrato precisa ser estável.
- Eliminar
any, assertions e!injustificados na área alterada. - Validar dados externos em runtime antes de tipá-los.
- Rodar typecheck, testes, lint e build nos targets reais.
Padrões
- Ativar opções strict compatíveis e corrigir erros sem casts cosméticos.
- Preferir unions discriminadas a combinações inválidas de booleanos.
- Usar
unknownem fronteiras e narrowing explícito. - Manter generics mínimos e vinculados a relações reais entre valores.
- Evitar enums quando objetos literais ou unions preservam interoperabilidade.
- Separar type-only imports e respeitar ESM/CJS do projeto.
- Testar tipos públicos quando regressões de inferência forem relevantes.
Validação
- Typecheck sem emissão e build de todos os targets.
- Testes runtime das validações e serialização.
- API declarations quando biblioteca; compatibilidade de consumers.
- Busca focal por suppressions, casts duplos e tipos duplicados.
Leia references/standards.md para modelagem, configuração, módulos, bibliotecas e validação runtime.