NonNullable<Type>

Retire null et undefined d’un type.

Sur cette page

Exemple

#
TypeScript
interface Profile {
  name: string
  avatar?: string | null
}

type Avatar = NonNullable<Profile['avatar']>
// type Avatar = string

const avatars = [null, 'lea.webp', undefined, 'lucas.webp']
const present = avatars.filter((a): a is Avatar => a != null)

console.log(present)
Résultat
['lea.webp', 'lucas.webp']

Définition et utilisation

#

NonNullable<Type> renvoie un type sans null ni undefined. Pour string | null | undefined, le résultat est string.

C’est utile pour des types dérivés d’autres types, par exemple d’un champ optionnel (NonNullable<User["avatar"]>), ou du résultat d’une fonction qui renvoie parfois null.

Cela ne vérifie rien dans le programme en cours d’exécution. Pour être sûr qu’une valeur n’est vraiment pas vide, un rétrécissement reste nécessaire, par exemple filtrer un tableau.

Syntaxe

#
Syntaxe
type New = NonNullable<Type>

Paramètres de type

#
  • Type

    type quelconque

    Le type dont vous retirez null et undefined.

Bonnes pratiques

#
  • La comparaison a != null (avec un seul =) rejette à la fois null et undefined.
  • Depuis TypeScript 5.5, le filtre a => a != null rétrécit lui-même le type du tableau, sans prédicat explicite.

Entrées associées

#

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