Skip to content

Commit e9afffd

Browse files
Merge pull request #1084 from davidalves1/davidalves1-ptbr-translation
[PT-BR] Translation of some playground example files
2 parents 813a9c9 + 767cf9d commit e9afffd

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
//// { compiler: { }, order: 2 }
2+
3+
// O operador de coalescencia nula é uma alternativa ao ||
4+
// que retorna o lado direito da expressão se o lado esquerdo
5+
// é nulo ou undefined (indefinido)
6+
7+
// Em contraste, || usa a checagem falsy, significando que um texto vazio
8+
// ou o número 0 seriam considerados falso.
9+
10+
// Um bom exemplo para essa funcionalidade é lidar com
11+
// objetos que tem padrões quando uma chave não é passada.
12+
13+
interface ConfiguracaoDoApp {
14+
// Padrão: "(sem nome)"; texto vazio é válido
15+
nome: string;
16+
17+
// Padrão: -1; 0 é válido
18+
itens: number;
19+
20+
// Padrão: verdadeiro
21+
ativo: boolean;
22+
}
23+
24+
function updateApp(configuracao: Partial<ConfiguracaoDoApp>) {
25+
// Com o operador null-coalescing
26+
configuracao.nome = configuracao.nome ?? "(sem nome)";
27+
configuracao.itens = configuracao.itens ?? -1;
28+
configuracao.ativo = configuracao.ativo ?? true;
29+
30+
// Solução atual
31+
configuracao.nome = typeof configuracao.nome === "string" ? configuracao.nome : "(sem nome)";
32+
configuracao.itens = typeof configuracao.itens === "number" ? configuracao.itens : -1;
33+
configuracao.ativo = typeof configuracao.ativo === "boolean" ? configuracao.ativo : true;
34+
35+
// Usando o operador || que poderia oferecer dados ruins
36+
configuracao.nome = configuracao.nome || "(sem nome)"; // não permite a entrada de ""
37+
configuracao.itens = configuracao.itens || -1; // não permite a entrada de 0
38+
configuracao.ativo = configuracao.ativo || true; // realmente ruim, sempre true (verdadeiro)
39+
}
40+
// Você pode ler mais sobre o operador nullish coalescing no post do blog do 3.7
41+
//
42+
// https://devblogs.microsoft.com/typescript/announcing-typescript-3-7/

0 commit comments

Comments
 (0)