TypeScriptTypes utilitaires
NonNullable<Type>
Retire null et undefined d’un type.
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 foisnulletundefined. - Depuis TypeScript 5.5, le filtre
a => a != nullré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.