typescript-strict
Installation
SKILL.md
TypeScript Strict
Tipos devem modelar o domínio e falhar cedo. Compile-time não substitui validação na borda. UX do form: better-forms.
Regras
- Trate
strictcomo baseline. Não desligue flags para “passar o build”. - Proíba
anynovo. Prefiraunknown+ narrowing. - Evite
ascego; use type guards, predicates e schemas. - Modele nullability explicitamente (
T | null), não com sentinelas mágicas. - Mantenha tipos de domínio em módulos dedicados; não espalhe interfaces duplicadas.
Modelagem
- Use union types e discriminated unions para estados.
- Prefira
Readonly/as constpara dados imutáveis. - Generics: constranja com
extends; evite generics decorativos. - Extraia tipos de valores (
typeof,ReturnType,Awaited) em vez de duplicar. - Para APIs externas, defina tipos de request/response e schemas Zod/Valibot equivalentes.