Como Adicionar Anotações de Tipo nos Parâmetros de uma Função em TypeScript

Uma função trivial para adicionar dois números pode ser escrita da seguinte maneira em JavaScript:
function somar(a, b) {
return a + b;
}Certos bugs como o seguinte podem às vezes acontecer:
let soma = somar("3", 5);
console.log(soma);O script acima imprime o seguinte:
35Observe que 3 + 5 deveria ser 8, mas devido ao primeiro argumento não ser o número 3, mas uma string que contém o caractere "3", obtemos um resultado incorreto. Isto porquê no JavaScript uma string + number irá causar uma operação de concatenação, cujo resultado no exemplo é "35".
Questões como essas podem ser detectadas facilmente no TypeScript na hora de compilação, sem termos que esperar até a hora de execução para verificar.
Vamos adicionar uma anotação de tipo para cada parâmetro da função em exemplo:
function somar(a: number, b: number) {
return a + b;
}Para definir o tipo do parâmetro, escreve-se dois pontos seguidos do tipo. No exemplo acima, o requiremento é que cada parâmetro seja um número, number.
Agora, ao compilar a função acima junto a chamada de somar abaixo, o compilador irá indicar um erro.
let soma = somar("3", 5);
console.log(soma);Argument of type '"3"' is not assignable to parameter of type 'number'.Para consertar o problema, basta passar um número no primeiro argumento, sem aspas:
let soma = somar(3, 5);Saída da Execução:
8Um dos grandes benefícios do TypeScript é poder detectar códigos problemáticos cedo, na etapa de compilação. Isso previne ter que rodar o script e testar na hora de execução.
É importante ressaltar que se escrevermos código diretamente em JavaScript, sem o passo da compilação do TypeScript, há uma chance do erro não ser detectado. Isso porque ainda que o script execute sem nenhum erro explícito, o JavaScript normal não tem cheque de tipos e, do seu ponto de vista, pensa que tudo está correto.
Para aprender mais sobre TypeScript, assista às aulas do NBK Mundo Tech:
https://www.youtube.com/watch?v=czp3QV55v1k&list=PLUbb2i4BuuzBcH1iS242xjztUwMI4erNb
Nos vemos lá!
Leia a seguir

O Que É a Linguagem de Programação Rust? Um Guia Simples da Linguagem Rápida Que Não Deixa Você Travar
Um guia simples e sem jargões sobre o Rust, a linguagem tão rápida quanto o C que impede famílias inteiras de erros de memória antes de o programa rodar. Entenda a ideia de posse, por que gigantes da tecnologia o adotam e onde ele é usado.

O Que É a Linguagem de Programação Go? Um Guia Simples da Linguagem da Nuvem
Um guia simples e sem jargões sobre o Go, a linguagem simples e rápida que o Google criou para a nuvem. Entenda o que são goroutines, por que um programa Go é um arquivo só e como o Go passou a mover o Docker, o Kubernetes e boa parte da internet.

O Que É a Linguagem de Programação Ruby? Um Guia Simples da Linguagem Feita para a Felicidade
Um guia simples e sem jargões sobre o Ruby, a linguagem de programação feita para deixar os programadores felizes. Entenda por que o código Ruby parece inglês, como o Ruby on Rails move sites como GitHub e Shopify, e onde o Ruby brilha.
Comentários
Seja gentil e específico. Comentários com links de contas novas aparecem depois da análise de um moderador.