vendredi 25 septembre 2026

À propos

Contact

Lexique · JavaScript

Chaînage optionnel

En anglais : « Optional chaining »

Syntaxe JavaScript notée « ?. » qui arrête l'accès à une propriété imbriquée et renvoie « undefined » dès qu'un maillon de la chaîne est absent, au lieu de déclencher une erreur.

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 que methode existe 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 que tableau[0], utile quand le tableau lui-même peut être undefined.