Accéder à reponse.data.utilisateur.nom échoue brutalement avec une erreur si data ou utilisateur est absent à un moment donné, un cas fréquent avec des données d’API dont la forme varie selon le contexte. Le chaînage optionnel, écrit ?., résout ce problème : dès qu’un maillon de la chaîne vaut null ou undefined, l’expression entière s’arrête et renvoie undefined, sans lever d’exception.
Un cas fréquent avec l’API REST de WordPress
Les réponses de l’API REST de WordPress contiennent des structures imbriquées qui ne sont pas toujours présentes selon le contexte (un article sans image mise en avant, un champ personnalisé absent). Le chaînage optionnel évite d’écrire une série de vérifications manuelles avant chaque accès, en particulier dans le JavaScript d’un bloc personnalisé qui consomme ces données via apiFetch.
Exemple
const url = article?.featured_media_details?.sizes?.large?.source_url;
// undefined si l'image mise en avant n'existe pas, sans erreur
À ne pas confondre avec
- L’opérateur de coalescence des nuls (
??), souvent utilisé juste après pour fournir une valeur par défaut :article?.titre ?? 'Sans titre'. - Une vérification d’existence classique avec
if: le chaînage optionnel ne remplace pas toute logique conditionnelle, il sécurise seulement l’accès à une propriété potentiellement absente. - Un appel de fonction incertain, qui utilise une variante dédiée :
objet.methode?.()vérifie quemethodeexiste avant de l’appeler, avec la même logique que pour une propriété. - Un accès à un index de tableau potentiellement absent, qui se sécurise de la même façon :
tableau?.[0]plutôt quetableau[0], utile quand le tableau lui-même peut êtreundefined.