Pra que server o TypeScript? Entenda um pouquinho o que é a tecnologia mais amada depois de Rust
Primeiramente, declarando as nomenclaturas:
const JS = “JavaScript”
const TS = “TypeScript”
De acordo com o Stack Overflow Survey 2020, TypeScript foi a linguagem mais amada depois de Rust.
Como já sabemos, JS é uma linguagem de programação com tipagem fraca e dinâmica, ou seja, as variáveis podem assumir diversos tipos ao decorrer da execução do código.
Então para a pergunta "o que é o Typescript?" eu irei responder de forma correta e errada ao mesmo tempo: TypeScript adiciona tipagem forte ao JavaScript.
Toda variável no TS precisa ser tipada e não pode ter seu tipo alterado em momento algum. Por exemplo, uma variável declarada como um number deve ser iniciada como number, usada como number e "morrer" como number. Mas por quê você disse que essa resposta é errada também? Porquê no fim é tudo JavaScript :), mas vamos discutir melhor.
Você pode criar sua api em Node.js apenas usando TS bem como seu site em React também, porém nem o navegador e nem o Node.js vão executar o seu código TS usando a extensão .ts, nem mesmo se você colocar a extensão .js, já que o JS irá acusar erro de sintaxe ao ver declarações do TS. Tá, mas como vou executar o código? O próprio TS (que é uma dependência de desenvolvimento usada dentro do JS) fornece um compilador, que irá converter seu código TypeScript para JavaScript, aí sim, através desse código compilado que o navegador e o Node.js irão conseguir executar.
Então pra que usar TS se no fim irá se tornar JS, voltando a ser tipagem fraca e dinâmica? Porque o TS é poderoso no ambiente de desenvolvimento! Você pode capturar erros antes de executar seu código em produção apenas vendo os alertas do seu editor de código, não só isso, você pode configurar o compilador do TS para que ele não compile seu código caso haja algum erro de sintaxe ou você esteja passando uma variável de tipo errada para algum parâmetro.
O TS adiciona sintaxe ao JS, com a criação de interfaces, declaração de tipos e modificadores de tipos. O TS não muda o funcionamento do JS, a curva de aprendizado é pequena, você continua usando JS do mesmo jeito, não se preocupe, tudo na linguagem é exatamente igual, você só precisa adicionar tipos agora :).
TypeScript é uma ferramenta que agrega muito ao seu projeto, principalmente se você está tentando aplicar uma arquitetura de software como DDD ao seu projeto. Você consegue fazer um código modular sem correr riscos de passar parâmetros de tipos errados ou até mesmo não saber quais propriedades aquela sua função recebe importada de outra parte do código. Quer saber mais sobre as features do TS? Entre no site oficial, lá você consegue ver exemplos práticos.