Operadores Condicionais
if
Usado para verificar uma condição. Se for verdadeira, executa o bloco.
let idade: number = 18;
if (idade >= 18) {
console.log("Você é maior de idade.");
}
if...else
Executa um bloco se a condição for verdadeira e outro se for falsa.
let estaChovendo: boolean = false;
if (estaChovendo) {
console.log("Leve um guarda-chuva.");
} else {
console.log("O tempo está bom.");
}
if...else if...else
Permite múltiplas condições encadeadas.
let nota: number = 75;
if (nota >= 90) {
console.log("Aprovado com louvor");
} else if (nota >= 60) {
console.log("Aprovado");
} else {
console.log("Reprovado");
}
switch
Usado para várias comparações com valores fixos.
let diaSemana: number = 3;
switch (diaSemana) {
case 1:
console.log("Domingo");
break;
case 2:
console.log("Segunda-feira");
break;
case 3:
console.log("Terça-feira");
break;
default:
console.log("Dia inválido");
}
O que é enum
em TypeScript?
enum
(abreviação de enumeration) é uma
funcionalidade do TypeScript que permite
declarar um conjunto de constantes nomeadas. Ele
facilita o trabalho com conjuntos fixos de valores, como dias da
semana, estados de um processo, cores, etc.
-
enum
é uma construção exclusiva do TypeScript (não existe em JavaScript). - Pode ser compilado em objetos JavaScript que funcionam tanto com nome → valor quanto valor → nome (no caso dos numéricos).
-
enum
pode ter comportamento inesperado se usado com strings dinâmicas mal definidas.
Por que usar enum
?
- Legibilidade: Os valores ficam com nomes mais claros.
- Organização: Centraliza valores fixos.
- Segurança de tipo: Evita uso de strings ou números soltos no código.
- Facilidade de manutenção: Mudanças em um valor são feitas em um único lugar.
Exemplo 1: Dias da Semana
enum DiaDaSemana {
Domingo,
Segunda,
Terca,
Quarta,
Quinta,
Sexta,
Sabado
}
const hoje: DiaDaSemana = DiaDaSemana.Quarta;
console.log(hoje); // 3
console.log(DiaDaSemana[hoje]); // "Quarta"
Nesse exemplo, o enum
atribui valores numéricos
automaticamente a partir de 0.
Exemplo 2: Estados de um Pedido
enum StatusPedido {
Pendente = "PENDENTE",
Processando = "PROCESSANDO",
Concluido = "CONCLUIDO",
Cancelado = "CANCELADO"
}
function atualizarStatus(status: StatusPedido) {
console.log(`Status do pedido: ${status}`);
}
atualizarStatus(StatusPedido.Concluido); // Status do pedido: CONCLUIDO
Neste caso, utilizamos enum
com valores string para
tornar os logs mais legíveis.
Exemplo 3: Níveis de Acesso
enum NivelAcesso {
Usuario = 1,
Moderador = 2,
Administrador = 3
}
function temPermissao(nivel: NivelAcesso): boolean {
return nivel >= NivelAcesso.Moderador;
}
console.log(temPermissao(NivelAcesso.Usuario)); // false
console.log(temPermissao(NivelAcesso.Administrador)); // true
Esse exemplo mostra como usar enums com valores numéricos personalizados para controle de acesso.
Exemplo 4: Usando enum em um switch
enum CorSemaforo {
Verde,
Amarelo,
Vermelho
}
function acaoSemaforo(cor: CorSemaforo): void {
switch (cor) {
case CorSemaforo.Verde:
console.log("Siga");
break;
case CorSemaforo.Amarelo:
console.log("Atenção");
break;
case CorSemaforo.Vermelho:
console.log("Pare");
break;
default:
console.log("Cor inválida");
}
}
acaoSemaforo(CorSemaforo.Amarelo); // Atenção
Exemplo 5: Usando enum de string
enum TipoUsuario {
Admin = "ADMIN",
Editor = "EDITOR",
Leitor = "LEITOR"
}
function mostrarPermissoes(tipo: TipoUsuario) {
switch (tipo) {
case TipoUsuario.Admin:
console.log("Acesso total");
break;
case TipoUsuario.Editor:
console.log("Pode editar conteúdo");
break;
case TipoUsuario.Leitor:
console.log("Apenas leitura");
break;
}
}
mostrarPermissoes(TipoUsuario.Editor); // Pode editar conteúdo
Dica: Sempre use Enum.Valor
nos
case
do switch. O TypeScript compila isso corretamente e
mantém o tipo seguro.