Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Variável do tipo number aceitando string como input?

Eu nunca trabalhei com TypeScript então fiquei um pouco confusa... Nós tipamos as nossas variáveis valor e destino como number, porém testando vários inputs no form eu vi que elas ainda armazenam input de string e imprimem eles de volta no console. Não deveria ter dado algum erro por tentar armazenar letras numa variável numérica?

1 resposta
solução!

Oi, Franciely! Tudo bem?

Desculpa pela demora!

O TypeScript em si faz as verificações de erro em tempo de compilação, ou seja, quando o código está sendo convertido de TypeScript para JavaScript. Isso significa que em tempo de execução, que é quando as variáveis de fato possuem valores e as funções são executadas, não há verificação, porque nesse momento só há JavaScript.

Além disso, nesse projeto, o instrutor optou por não usar as restrições recomendadas do TypeScript, que tornaria o projeto mais restritivo, e por ser um projeto inicial poderia distrair um pouco do ponto principal que é o Angular.

Assim, o que acontece é o seguinte: o TypeScript não sabe que o que está sendo passado é uma variável do tipo string, tudo que ele sabe é que o ngModel retorna algo do tipo any. Então ele entende que existe a possibilidade de ser do tipo number que é o correto, e fica silencioso.

Você pode verificar isso passando o mouse por cima do [(ngModel)] de qualquer um dos inputs, você vai ver que aquela propriedade é do tipo any.

Espero que tenha entendido! E aqui na plataforma temos os cursos de TypeScript que podem te ajudar a ter uma compreensão melhor sobre isso!