Chemins & optionnalité
Un chemin lit une valeur dans l'entrée : user.address.city. L'entrée étant typée, chaque segment est validé à la compilation — une faute de frappe est une erreur de compilation, pas un undefined silencieux.
| Opérateur | Effet |
|---|---|
. | lire une valeur dans l'entrée |
?. | requis pour les segments optionnels ou nullables |
?? | fournir un repli pour null/undefined, supprime l'optionnalité |
. : lire une valeur dans l'entrée
Chaque segment est validé — une faute de frappe est TF2002 avec une suggestion « vouliez-vous dire », pas un undefined silencieux.
city: user.address.city?. : requis pour les segments optionnels ou nullables
Si un segment peut être absent (contact?:) ou nullable, l'accès simple par . est refusé (TF2003). Sans valeur par défaut, une valeur possiblement undefined devient un champ optionnel du type de sortie — le champ est simplement absent du JSON de sortie quand sa valeur est undefined.
email: user.contact?.email?? : fournir un repli pour null/undefined, supprime l'optionnalité
Le compilateur signale aussi l'erreur inverse : utiliser ?? sur une valeur jamais nullish est l'avertissement TF2013 — du code mort.
email: user.contact?.email ?? "unknown"Playground
{ "name": "Ada", "email": "unknown" }
{ name: string; email: string }Suite : Arithmétique & chaînes.