TypeScriptTypes de base

null et undefined

Les types pour l’absence de valeur, contrôlés par strictNullChecks.

Sur cette page

Exemple

#
TypeScript
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)
Résultat
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

#
Syntaxe
let value: string | null = null
let optional: number | undefined

Plus d’exemples

#
Le compilateur impose une vérification
TypeScript
const avatar: string | null = null
console.log(avatar.length)
// Erreur : 'avatar' is possibly 'null'.

Bonnes pratiques

#
  • Gardez strictNullChecks activé. 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 pour null et undefined, pas pour 0 ni pour une chaîne vide.

Entrées associées

#

Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.