Logical Operators and Assignment

Logical Operators e Assignment são novas funcionalidades do JavaScript para 2020. Esses são um conjunto de operadores novos que editam um objeto JavaScript. Seu objetivo é reutilizar o conceito de operadores matemáticos (Ex: += -= *=) porém usando lógica.

interface User {
  id?: number
  name: string
  location: {
    postalCode?: string
  }
}

function updateUser(user: User) {
  // Pode-se trocar esse código:
  if (!user.id) user.id = 1

  // Ou esse código:
  user.id = user.id || 1

  // Por esse código:
  user.id ||= 1
}

// Esses conjuntos de operadores podem lidar com encadeamento profundo podendo poupar uma boa quantidade de código repetido.
declare const user: User
user.location.postalCode ||= "90210"

// São três novos operadores: ||= mostrado acima &&= que usa a lógica do 'and' ao invés da 'or' ??= que se baseia no example:nullish-coalescing para oferecer uma versão mais rigorosa do || que usa === no lugar. Para mais informações da proposta, veja: https://github.com/tc39/proposal-logical-assignment