Variables and Values
Podemos declara por inferencia:
Um tipo como um conjunto de valores permitidos
Com isso o tipo por inferencia ficou como number logo ao tentarmos atribuirmos um valor de string a variavel foo será nós avisado que isto está incorreto;
O erro será de assinatura de tipo, ou seja, é quando por inferencia pensa que aquela mulher no tinder é do tipo mulher, mas quano chega lá é do tipo mulher feijoada, vem com linguiça
No TS quando criamos uma constante e atribuimos um valor ele pega esse valor e assume como o tipo da variavel:
O tipo de
humidityé79, meio estranho eu sei, mas ele faz essa assumição específica aquiA
constnão pode ser retribuída e o tipo dehumidityé tipo de valor imutável
Por exemplo, não poderíamos fazer isto:
já que a variavel
temperaturenão é do tipo79;
Seguindo isso também serviria para as variaveis mutaveis:
Com esse as dizemos que o tipo é 79 e não um número:
Ao tentarmos atribuir um valor do tipo númerico não conseguimos, já que o tipo esperado é
79
Temos outro tipo de loucura no TS que é criarmos uma let em que definimos que o que ela aceita é um valor especifico:
Isso faz com que o tipo dessa variavel seja somente do tipo
79, que não é um number e sim79
Tipo implicito: any e anotações de tipo
Neste exemplo vemos o uso do any quando apenas declaramos uma variavel ou queremos que ela assuma um valor flexivel e que fuja do bom senso de usar uma linguagem tipada por algum motivo sem sentido e hediondo usamos o any;
No caso acima o tipo any foi assumido de forma implicita, mas podemos usala de forma explicita com usando: type annotations ou anotação de tipo:
Para definirmos um tipo usamos o sinal de ":" (dois pontos) e passamos o tipo;