Argument of type ‘number’ is not assignable to parameter of type ‘string’, usando o TypeScript

Fala stakers!

Alguma vez, você já recebeu este erro. Vamos aprender a prevenir isso e conseguir codar com mais qualidade e evitar o que pode ser evitado.

Classes no JavaScript

Quando recebemos a atualização do ES2015 com a inclusão das Classes no JS, facilitou muito a nossa vida de programador. Agora podemos definir elas simplesmente fazendo (class Humano) e podemos colocar propriedades nele, como braços, pernas, cabeça e muito mais.

As classes são ideais para fazer novas instâncias e lidar com um grupo de propriedades e métodos.

E sabemos quais as propriedades a classe possui. E também teremos certeza do que esperar delas

Vamos deixar as coisas mais previsíveis com o TypeScript

A classe pode ser pensada como uma planta de um projeto, pode ser usada para criar várias casas, ou seja, uma classe pode ser usada para criar vários objetos com as propriedades que nós queremos.

Como TypeScript, nós teremos certeza do que estamos recebendo.

É por facilidades como essa que gosto muito de usar o TS para codar, ele já nos dá todo o caminho das pedras para descobrir o erro.

Este exemplo nós criamos uma classe chamada “Automovel” e colocamos dois atributos nela, “marca” e “ano” e tipamos os dois atributos com o poder do TS, prevenindo assim de marca receber número, boleano ou qualquer outro tipo que não queremos, o mesmo vale para ano, que só pode receber número.

Criamos o método “rodar”, e deixamos o retorno como void. E colocamos um simples console.log para ele.

No fim vamos fazer o uso da nossa classe Automovel, e vamos passar para uma instancia da classe a variável carroPopular e invocar o método rodar que chamara nosso console.log com as informações do carroPopular.

Não esquecemos que a classe também pode herdar outras classes e assim, ter acesso a todos os métodos e atributos de seu pai, assim como os novos criados.

Com o nosso querido TS, evitamos de passar valores errados:

Conclusão:

Sempre que possível, eu gosto de usar o TypeScript para lidar melhor com o retorno que esperamos de nossas classes e evitar erros bobos como esse.

Gostou? Quer aprender mais de angular? Então veja aqui nosso Curso de Angular.

Aprenda mais de Angular em nossas postagens ou no Youtube.

Share This