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 <span class="css-span">null</span> ou <span class="css-span">undefined</span> :
<pre><code>const younup = {
expert: {
babyfoot: null,
description: '',
roxx: true
}
};
const undefinedValue = (younup.expert as any).scrabble ?? 'non disponible'; // 'non disponible'
const nullValue = younup.expert.babyfoot ?? 'non disponible'; // 'non disponible'
const description = younup.expert.description ?? 'Ici, on n\'est pas expert en babyfoot'; // ''
const isExpertIt = younup.expert.roxx ?? false; // true</code></pre>
Pour aller plus loin
En complément, on peut également l'utiliser conjointement avec l'opérateur de chainage optionnel.
<pre><code>const timeBeforeDiner = younup?.meetupDuration ?? 500;</code></pre>
Nous avons un double fallback :
- Si <span class="css-span">younup</span> est <span class="css-span">undefined</span> ou <span class="css-span">null</span> alors <span class="css-span">timeBeforeDiner</span> prendra la valeur 500.
- Si <span class="css-span">younup.meetupDuration</span> est <span class="css-span">undefined</span> ou <span class="css-span">null</span> alors <span class="css-span">timeBeforeDiner</span> prendra aussi la valeur 500.
Donc si vous avez bien suivi, si <span class="css-span">younup.meetupDuration</span> est égal à 0 alors <span class="css-span">timeBeforeDiner</span> sera égal à ... 0 !
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…