null et undefined
Les types pour l’absence de valeur, contrôlés par strictNullChecks.
Exemple
#function findUser(id: number): { name: string } | null {
return id === 1 ? { name: 'Léa' } : null
}
const user = findUser(2)
console.log(user?.name ?? 'Invité')
console.log(findUser(1)?.name)Invité Léa
Définition et utilisation
#En TypeScript, null et undefined ont leurs propres types. Avec l’option strictNullChecks activée (elle fait partie du mode strict), vous ne pouvez pas les assigner à une variable de type string ou number. Si une valeur peut ne pas exister, vous devez l’indiquer explicitement : string | null.
Grâce à cela, le compilateur impose de gérer l’absence de valeur. Avant de lire une propriété, vous devez vérifier que l’objet existe, ou utiliser les opérateurs ?. et ??.
Une convention répandue dans de nombreux projets : undefined signifie « non défini » (par exemple un champ optionnel omis), et null signifie « délibérément vide » (par exemple l’absence d’avatar).
Syntaxe
#let value: string | null = null
let optional: number | undefinedPlus d’exemples
#const avatar: string | null = null
console.log(avatar.length)
// Erreur : 'avatar' is possibly 'null'.Bonnes pratiques
#- Gardez
strictNullChecksactivé. C’est l’une des protections les plus précieuses contre les erreurs « cannot read properties of undefined ». - L’opérateur
??ne renvoie le côté droit que pournulletundefined, pas pour0ni pour une chaîne vide.
Entrées associées
#Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.