TypeScript - Amor e ódio... pera aí, ódio?
TypeScript
Pra quem não conhece ou não usa, TypeScript nada mais é do que um SuperSet de JavaScript desenvolvido pela microsoft em 2012. A proposta principal do TypeScript é implementar a tipagem explícita de dados ao JavaScript. Desse modo, diminuindo a possibilidade de bugs ao longo do desenvolvimento, contribuindo com a colaboração no código, e potencializando ferramentas de IntelliSense como o Visual Studio IntelliCode por exemplo.
🧑💻️ Minha experiência com TypeScript
Minha experiência individual com o TypeScript foi excelente, já que abriu caminhos na minha mente que jaziam antes trancados por falta de conhecimento do que era tipagem. Obviamente já conhecia o que são Strings, Integers, etc. mas não conhecia a possibilidade de tipagem em objetos, retorno de funções, parâmetros e por aí vai. Uma causa disso foi o uso do JavaScript como linguagem principal desde sempre. Já tinha usado Python antes, mas a tipagem é ainda mais simples que em JavaScript.
Fato é que o TypeScript traz uma experiência de desenvolvimento muito melhor e muito mais avançada do que o JavaScript sozinho é capaz de trazer. Quem nunca se matou tentando destrinchar o erro no código, refazendo lógicas e debugando, pra no fim o problema ser um parâmetro que espera o nome "foo_bar" ao invés de "fooBar". Isso era rotina pra mim usando JavaScript e sempre precisa voltar na documentação pra verificar coisas simples como o nome de parâmetros. Com TypeScript acho que isso nunca mais me ocorreu.
No fim só tive vantagens quando escolhi aprender TypeScript, o qual garante muito mais produtividade e confiança no código, além de melhorar e muito a lógica do código e a maneira de pensar de quem só usava JavaScript. Até a leitura de erros se torna muito mais prática e fácil usando TypeScript.
🤬️ Porque tanto ódio?
Após todas essas vantagens citadas acima, não consigo ver motivos para todo esse ódio ao redor do TypeScript, justificado por muitos pela complexidade a mais que ele traz pro código, o que pra mim não faz o mínimo de sentido a não ser que você goste de escrever código frágil e de difícil entendimento só pra não ter que aprender algo que no fim é tão simples como definir uma variável mas traz uma estrutura absolutamente superior se comparado a códigos sem tipagem (claro que no fim isso vai depender unicamente do próprio desenvolvedor e não da tecnologia sendo utilizada).
Talvez o ódio no fim seja resumido apenas em um preconceito, que não é nada fora do comum na área. Mas no fim das contas a realidade é que o TypeScript veio apenas para ajudar, facilitando não só o entendimento do seu código por outros desenvolvedores e até por você mesmo, mas também o processo de criação de features complexas, além de muitos outros benefícios.