Por que eu devo ler este artigo:As variáveis são um recurso fundamental para qualquer linguagem de programação e aprender a utilizá-las de forma correta é uma das bases do desenvolvimento.

Uma variável é um meio de armazenar dados em memória. Em outras palavras, ela funciona como um container para valores em um programa.

Sintaxe

O TypeScript possui algumas regras sobre o que se deve ou não fazer ao declarar uma variável. Veja a lista abaixo:

  • O nome deve começar com uma letra ou sublinhado (_), nunca com número;
  • Para o restante do nome apenas letras, números e sublinhado (_) podem ser utilizados. Qualquer outro caractere, símbolo ou mesmo espaço é proibido;
  • Uma variável deve ser declarada antes de ser utilizada;
  • Use a palavra-chave let para declarar uma variável.

Agora que sabemos as regras, vamos ver no Código 1 alguns exemplos de uso corretos e incorretos de nomes de variáveis.


//Isso está correto
let funcionario: string = "Eduardo";

//Isso está correto
let funcionario2: string = "Eduardo";

//Isso está correto
let funcionario_2: string = "Eduardo";

//Isso está correto
let _funcionario: string = "Eduardo";

//Isso está incorreto: nome iniciado com número
let 2funcionario: string = "Eduardo";

//Isso está incorreto: nome contém espaço
let funcionario 2: string = "Eduardo";

//Isso está incorreto: nome contém um traço (-)
let funcionario-2: string = "Eduardo";

//Isso está incorreto: nome contém um símbolo (@)
let funcionario@: string = "Eduardo";
Código 1. Sintaxe

Além das regras que vimos, por ser uma linguagem fortemente tipada, o TypeScript requer que as variáveis possuam um tipo na sua declaração, seja de forma explícita ou por inferência, como vemos nos Códigos 2 e 3.


     //Variável do tipo string declarada por inferência de tipo
     let usuario = "Phil";
Código 2. Declaração por inferência de tipo

    //Variável do tipo string declarada explicitamente
    let usuario: string = "Phil";
Código 3. Declaração explícita

No Código 2 temos a variável declarada por inferência de tipo. Nela vemos o let, que é a palavra-chave utilizada na declaração, e usuario, que é o nome da variável. O sinal de igual é utilizado para atribuir o valor da variável e em seguida vemos o texto "Phil" que é o valor atribuído a ela. Chamamos essa forma de declaração de implícita, porque ela não contém o tipo da variável.

O fato de não declararmos o tipo da variável explicitamente não significa que ela não possui um tipo, mas este será dado pelo compilador de acordo com o valor que ela possui.

A declaração do Código 3 é bem semelhante a primeira, contudo, possui apenas uma diferença: a inclusão do separador : entre o nome da variável usuario e o seu tipo string. A isso chamamos declaração explícita de tipo.

Para mais informações sobre tipagem de variáveis dê uma conferida na nossa sala de tipos de dados.

Inferência de tipo

Como já falamos anteriormente, o TypeScript é uma linguagem fortemente tipada e isso significa que ao declaramos nossas variáveis precisaremos definir um tipo. No exemplo que vimos acima notamos que a primeira declaração não possuía o tipo string informado explicitamente, mas assumiu esse tipo devido ao seu valor. Veja no Código 4 alguns tipos de variáveis sendo definidos por inferência.


//Tipo number será inferido pelo valor 1
let id = 1;

//Tipo string será inferido pelo valor "Eduardo"
let nome = "Eduardo"

//Tipo string será inferido pelo valor "10"
let quantidade = "10";
Código 4. Inferência de tipo

Perceba que no exemplo acima a variável id recebe o tipo number, enquanto quantidade recebe string, por causa das aspas.

As aspas são obrigatórias ao declarar strings. Um conteúdo numérico entre aspas inferirá o tipo string. Um conteúdo textual fora de aspas retornará um erro.

Momento da declaração

A variável no TypeScript deve ser declarada antes de ser utilizada, como vemos nos Códigos 5 e 6.


//Variável declarada
let x;

//Valor atribuído
x = 10;
Código 5. Declarando e atribuindo valor separadamente

//Declaração e atribuição de valor ao mesmo tempo
let x = 10;
Código 6. Declarando e atribuindo valor ao mesmo tempo

Tentar acessar uma variável que ainda não foi declarada também causará um erro de compilação, como vemos no Código 7.


//Variável declarada e atribuída
let x = 10;

//Variável utilizada
//y não foi declarado e sim x
console.log(y);
Código 7. Acessando variáveis

Note que no primeiro código a declaração da variável ocorreu antes dela ser chamada no console.log, por isso o código funciona normalmente.

Já no segundo código, a declaração da variável ocorreu após a chamada dela no console.log, o que ocasionará um erro de compilação.

Utilizando constantes

Existe um outro tipo de declaração de dados semelhante a variável, o qual chamamos de constante.

Assim como a variável, a constante armazena um dado na memória. A diferença é que o valor da constante não pode ser alterado, com vemos na Figura 1.

variáveis e constantes
Figura 1. Diferença entre variável e constante

Uma vez definido, o valor será o mesmo durante toda a execução da aplicação e tentar alterar seu valor causará um erro, como vemos no Código 8.


        const nome: string = "Marcos";
        const aceleracaoGravidade: number = 9.81;

        //Aqui ocorrerá um erro de compilação, pois não é possível mudar o valor de uma constante. 
        aceleracaoGravidade = 9.8;
    
Código 8. Declarando uma constante

Outro ponto importante é que, diferente da variável, o valor da constante só pode ser definido no momento da declaração dela, como vemos nos Códigos 9 e 10.


//Isso está correto
const aceleracaoGravidade = 9.81;
Código 9. Como definir o valor da constante

//Isso está incorreto, o valor deve ser definido no momento da declaração
const aceleracaoGravidade;
aceleracaoGravidade = 9.81;
Código 10. Como NÃO definir o valor da constante

O TypeScript recomenda que a palavra-chave const seja utilizada sempre que possível, a menos que o valor da variável precise mudar. Nesse caso usamos let, como mostra o Código 11.


 //Esse valor nunca será alterado pela aplicação
 const aceleracaoGravitacional: number = 9.81;

 //Esse valor poderá ser alterado pela aplicação
 let velocidadeAtual: number = 0;

 valocidadeAtual = 100;
Código 11. Utilizando const e let

No Código 11 declaramos a variável aceleracaoGravitacional utilizando const, pois o seu valor não será alterado em nenhum momento na aplicação. Já a variável velocidadeAtual será alterada, por isso, para ela utilizamos o let.

Conclusão

O uso das variáveis é essencial para qualquer linguagem de programação e no TypeScript não é diferente, pois é com elas que armazenamos os dados que nossa aplicação vai utilizar. Por isso, aprender como usar variáveis corretamente é essencial para todos que desejam ser programadores TypeScript.