TypeScript estrito: como ele mudou a qualidade do nosso código
Adotamos strict mode desde o primeiro dia. Dois anos depois, aqui está o que isso significou na prática.
TypeScript estrito: como ele mudou a qualidade do nosso código
Quando migramos todos os projetos para TypeScript com strict: true, a resistência inicial da equipe foi alta. Dois anos depois, ninguém quer voltar.
O que muda com strict mode
Com strict: true, o TypeScript ativa um conjunto de verificações que a maioria das equipes evita por parecerem "chatas":
strictNullChecks: obriga a tratarnulleundefinedexplicitamentenoImplicitAny: proíbe variáveis sem tipo definidostrictFunctionTypes: verificação mais rigorosa de tipos em funções
O impacto real
O indicador mais claro: bugs em produção relacionados a undefined is not a function caíram para zero nos projetos strict. Zero.
O custo: os primeiros sprints de cada projeto são ~20% mais lentos enquanto a equipe define os tipos corretamente.
A mentalidade que mudou
Mais do que técnico, o TypeScript estrito mudou como pensamos sobre o código. Quando você é forçado a explicitar os tipos, você é forçado a pensar sobre os dados que está manipulando. Isso melhora o design do código independentemente do TypeScript.