DEV Community

Leonardo Minora
Leonardo Minora

Posted on

1

js / ts - comando !!

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:

  • false
  • 0
  • -0
  • "" (string vazia)
  • null
  • undefined
  • NaN

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)
Enter fullscreen mode Exit fullscreen mode

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");
}
Enter fullscreen mode Exit fullscreen mode

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)

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more