Executando verificação de segurança...
0

Alternativa ao Switch

Switch padrão

O switch é um dos blocos de código mais básicos da programação, porém, temos outras maneiras de obter o mesmo comportamento usando o JavaScript e TypeScript.

Exemplo de Switch:

function formatStatus(status: 'PENDING' | 'AUTHORIZED' | 'REFUNDED') {
  switch (status) {
    case 'PENDING':
      return 'Processando'
    case 'AUTHORIZED':
      return 'Pago'
    case 'REFUNDED':
      return 'Estornado'
    default:
      throw new Error('status not found')
  }
}

formatStatus('PENDING')

No exemplo acima, é preciso fazer uma função para retornar a tradução do status do pagamento, ou seria preciso em cada local de uso replicar o bloco do switch.

Alternativa

Como alternativa podemos criar um objeto com as chaves sendo o case do switch e os valores sendo o bloco interno de cada case, o exemplo abaixo tem o mesmo funcionamento do anterior.

const formattedStatus = {
  PENDING: 'Processando',
  AUTHORIZED: 'Pago',
  REFUNDED: 'Estornado',
}

formattedStatus['PENDING']
Carregando publicação patrocinada...
1

Que bacana, o código fica bem mais limpo!
Fiz uma solução semelhante para PHP:

Como normalmente usamos:

function format1($status) {
	switch($status)
	{
		case "PENDING":
			return "Processando";
			break;
		case "AUTHORIZED":
			return "Pago";
			break;
		case "REFUNDED":
			return "Estornado";
			break;
	}
}

echo format1("PENDING");

Versão Minificada:

const formattedStatus = [
     'PENDING' => "Processando",
     'AUTHORIZED' => 'Pago',
     'REFUNDED' => 'Estornado',
];

echo formattedStatus["PENDING"];