Em TypeScript (e JavaScript), o operador !! é uma maneira comum de converter um valor em um booleano. Essencialmente, o !! transforma qualquer valor em um valor booleano verdadeiro (true) ou falso (false).
Como Funciona:
- O primeiro
!nega o valor: se o valor for "truthy" (verdadeiro), ele se tornaráfalse. Se o valor for "falsy" (falso), ele se tornarátrue. - O segundo
!nega novamente o resultado da primeira negação. Assim, se o valor original era "truthy", o resultado final serátrue, e se era "falsy", o resultado final seráfalse.
Valores Truthy e Falsy
Em JavaScript, alguns exemplos de valores "falsy" incluem:
false0-0-
""(string vazia) nullundefinedNaN
Qualquer outro valor é considerado "truthy", como:
- Objetos (inclusive arrays)
- Strings não vazias
- Números diferentes de zero
Exemplos:
Aqui estão alguns exemplos que mostram como o !! funciona:
const a = 5;
const b = 0;
const c = null;
const d = "Hello";
// Usando !! para converter em booleano
console.log(!!a); // true (5 é truthy)
console.log(!!b); // false (0 é falsy)
console.log(!!c); // false (null é falsy)
console.log(!!d); // true (string não vazia é truthy)
// Exemplo mais complexo
const myArray = [];
console.log(!!myArray); // true (array vazio é truthy)
Uso Típico
O !! é frequentemente usado em códigos onde você deseja garantir que um valor seja tratado como um booleano, especialmente em condições. Por exemplo:
if (!!user) {
console.log("User exists");
} else {
console.log("User does not exist");
}
Neste caso, o uso de !! assegura que user é tratado como um booleano ao avaliar a condição do if.
Conclusão
Portanto, o !! é uma forma conveniente e concisa de forçar um valor a ser interpretado como um booleano em TypeScript e JavaScript. É uma prática comum para garantir que uma condição seja avaliada corretamente.
by ChatGPT
Top comments (0)