“O compilador TypeScript encontra apenas pequenos erros”
Hum, sim. Exatamente certo.
“Todos esses tipos criam muitos erros”
Hum, sim. Exatamente certo.
Ok, esses dois últimos comentários foram um pouco irreverentes. Mas os erros são o ponto. O compilador TypeScript encontrará erros que podem chegar à implantação se não forem detectados por meio de testes. É sempre melhor encontrar um problema no início do ciclo de desenvolvimento, e nada acontece antes do que um pequeno rabisco vermelho aparecendo imediatamente quando você digita um erro.
Quanto a “Muitos erros”, bem, isso é um recurso. TypeScript é preciso e a precisão é boa e desejável durante a codificação. Não há limite para as maneiras pelas quais você pode dar um tiro no próprio pé com JavaScript. Vejo muitos “Adivinhe o que esse código JavaScript geraria!” problemas. Se houver ambigüidade e imprecisão em uma linguagem, essa linguagem resultará em código com erros. Se você precisar executar o código para saber qual deve ser sua saída, você terá um código incorreto.
“Posso usar testes unitários para garantir que meu código funcione corretamente”
Este é um argumento que me faz pensar. Adoro testes unitários e desenvolvimento orientado a testes, e acho que todos nós deveríamos escrever nosso código dessa maneira, então esse argumento é convincente. Mas então eu lembro que você também pode fazer testes de unidade com TypeScript, então esse argumento meio que desmorona.