Os conceitos básicos sobre variáveis, contantes e escopo foram vistos em Tutorial Portugol: Variáveis sendo a leitura recomendada.

Para armazenar informações em nossos programas escritos em TS precisamos utilizar variáveis e constantes. Nesta parte do tutorial vamos aprender sobre o assunto esses assuntos.

Para a declaração de variáveis em TS, utilizamos a palavra reservada let. A linguagem TS possui tipagem dinâmica, não sendo necessário a declaração do tipo da variável.

Sintaxe
let nome_variavel:tipo_dado;
let nome_variavel = valor;
Exemplo 1
let nome_variavel:string; //undefined

TS permite que essa declaração seja feita em apenas uma linha. A sintaxe é semelhante ao que foi visto no exemplo acima. Nesse tipo de declaração os nomes das variáveis são separados por (,).

Sintaxe
let nome_variavel1, nome_variavel2, nome_variavelN;
Exemplo 2
let str:string, num:number; //undefined

A atribuição de valor a uma variável é feita utilizando o operador (=) podem ser em linha ou não. Outros operadores serão vistos mais adiante.

Sintaxe
nome_variavel1:tipo_de_dado = valor
Exemplo 3
let valor:number = 1;

A declaração de constantes em TS é feita utilizando a palavra reservada const semelhante a várias outras linguagens no estilo-C. Uma vez iniciada uma constante não pode ter seu conteúdo alterado.

O conceito de constantes foi visto em Tutorial Portugol e Tutorial C.

Sintaxe
const NOME_CONSTANTE:tipo_dado= valor;
Exemplo 4
const NUM:number = 100;

A linguagem TS permite que essa declaração seja feita em apenas uma linha. A sintaxe é semelhante ao que foi visto no exemplo acima. Nesse tipo de declaração os nomes das variáveis são separados por (,).

Sintaxe
const CONSTANTE:tipo_dado = valor1, CONSTANTE2:tipo_dado2 = valor2, CONSTANTEN:tipo_dadoN = valorN;
Exemplo 5
const num:number = 100,str:string="TESTE";

A visibilidade ou escopo de variáveis e constantes em TS são divididas em 3 tipos: Bloco, Função e Global.

Qualquer declaração de constantes ou variáveis feitas fora de uma função tem visibilidade global podendo ser acessada por qualquer função ou arquivo .ts.

Exemplo 6
let variavel; //global

function funcao() {
  //omitido
}

Qualquer declaração de constantes ou variáveis feitas dentro de uma função tem visibilidade local/função podendo ser acessada dentro da própria função. Constantes e variáveis globais podem ser acessadas normalmente dentro de funções.

Exemplo 7
let variavel; //global

function funcao() {
  let variavel; //função
}

As variáveis e constantes definidas dentro de um bloco de código tem escopo de bloco e não podem ser acessadas de fora. Variáveis e constantes globais podem ser acessadas dentro do bloco.

Exemplo 8
let var1:number;
{ //bloco
    let var2:number;
    //omitido
}

Em relação a POO, as variáveis de classe tem seu escopo e visibilidade definidas por modificadores de acesso. Esses podem ser public, private e protected. O assunto modificadores pode ser visto em Typscript: Encapsulamento

Módulos ou bibliotecas do usuário contem recursos que possuem escopo global, local , função e classe. O assunto módulo pode ser visto em Typscript: Módulo.

A linguagem TS, assim como Lua, Python e PHP, possui a característica de inferência de dados. Isso significa que quanto criamos uma variável não precisamos declarar seu tipo. A inferência do tipo de dado está associada ao valor atribuído à variável.

Exemplo 9
let numero = 10;
numero = "string";

Uma vez que a inferência é feita, a variável afetada não pode receber outros tipos de dados além do tipo de dado informado pelo valor inicial atribuído.

Agora que já temos conhecimento sobre os tipos básicos de dados presentes na linguagem TS, vamos ver alguns exemplos de declaração de variáveis nessa.

Exemplo 10
const CONSTANTE = 3.14;
let valor:number = 999;
let float1:number = 1.99;
let string1:string = 'string'
let string2:string = "string"
let array1:number[] = [1,2,3];
let matriz:number[][] = [[1,],[1,2]];
let booleano:boolean = false;
let nome_variavel:any //qualquer tipo

Outras variáveis de tipos de dados mais complexos serão vistos ao longo do tutorial, não sendo necessário uma preocupação inicial.

A linguagem TS fornece o recurso de desempacotar(unpacking) valores de arrays, propriedades de objetos e atribui-los à variáveis.

Sintaxe
let [var1, var2] = [valor1, valor2];
[var1, var2] = [valor1, valor2];
Exemplo 11
let vet:number[] = [1,2,3]
let [a,b,c] = vet;

A linguagem TS, diferente de outras linguagens, permite que sejam criadas variáveis utilizando o recurso de união de tipos.

Sintaxe
tipo_dado1 | tipo_dado2
tipo1 & tipo2
Exemplo 12
let valor:number|string;

valor = "teste"
valor = 1;

Os identificadores(Varíaveis, constante e outros) em TS, assim como em várias outras linguagens, precisam seguir alguma regras quando declarados:

Regras
  1. Devem conter apenas letras, números, underscore e $.
  2. Devem iniciar com letra ou underscore, $ ou _
  3. Identificadores são case-sensitive. Nome e NOME são diferentes
  4. Não podem utilizar palavras reservadas
Exemplo 13
//válidos
let nome:string;
let NOME:string;
let _nome:string;

//inválidos
let 1nome:string;
let um variavel::string;
let 123:number;

Como toda linguagem, TS possui um conjunto de palavras reservadas(keywords) que são reconhecidas e não podem ser utilizadas como nome de variáveis e constantes ou funções.

Tab. 1: Palavras reservadas
abstract arguments await boolean break
byte case catch const continue
default delete do else eval
false final finally for function
interface if implements in instanceof
let native new null package
private protected public return static
switch synchronized this throw throws
transient true try typeof var
void volatile while with yield
class enum export extends import
super any unknown never of
as
  1. 27/08/2025 - revisão 2 - Ajustes: pontuais, sintaxes e target de links
  2. 13/09/2024 - revisão 1 - Correção em estilo/css de exemplos 1, 2 e 3, pequenos ajustes gramaticais e melhorias
  3. 27/02/2024 - versão inicial