L'opérateur de nullish coalescing : une autre nouveauté de TypeScript 3.7

La sortie de TypeScript 3.7 apporte son lot de nouvelles fonctionnalités.

Moins connu que son grand frère le chainage optionnel, le nullish coalescing (coalescence nulle en français, mais c'est une traduction non officielle) fait partie de ces nouveautés.

Il permet de retourner une valeur par défaut si la valeur testée est null ou undefined :

const younup = {
  expert: {
    babyfoot: null,
    description: '',
    roxx: true
  }
};

const undefinedValue = (younup.expert as any).scrabble ?? 'non disponible'; // resultat: 'non disponible'

const nullValue = younup.expert.babyfoot ?? 'non disponible'; // resultat: 'non disponible'

const description = younup.expert.description ?? 'Ici, on n\'est pas expert en babyfoot'; // resultat :''

const isExpertIt = younup.expert.roxx ?? false; // resultat: true

Pour aller plus loin

En complément, on peut également l'utiliser conjointement avec l'opérateur de chainage optionnel.

const timeBeforeDiner = younup?.meetupDuration ?? 500;

Nous avons un double fallback :

  • Si younup est undefined ou null alors timeBeforeDiner prendra la valeur 500.

  • Si younup.meetupDuration est undefined ou null alors timeBeforeDiner prendra aussi la valeur 500.

Donc si vous avez bien suivi, si younup.meetupDuration est égal à 0 alors timeBeforeDiner sera égal à ... 0 !

Benjamin

Benjamin, expert front Younup, aime le code smart, compréhensible et réutilisable. Malgré ses différentes tentatives de supprimer ES4 et Angular3 il a échoué, damn !

Ses technos de prédilection sont le Typescript, il adore transpiler en ES3 pour Internet Explorer, mais aussi le JavaScript. Hé oui, on peut tout faire avec (enfin aussi n’importe quoi…). Avouons-le, il a aussi un petit crush pour les PWA. Quand le web vient titiller le monde des apps natives et apporter une concurrence ultra positive !

Et si vous ne trouvez pas Benjamin derrière son écran se tirant les cheveux pour avoir oublié un CTRL+S, il devrait être sur un terrain, non loin du Saint Laurent, à travailler ses shoots…

Retours aux publications