Required<Type>

Crée un type dans lequel toutes les propriétés sont obligatoires.

Sur cette page

Exemple

#
TypeScript
interface Options {
  theme?: 'dark' | 'light'
  pageSize?: number
}

const defaults: Required<Options> = { theme: 'dark', pageSize: 20 }

function resolve(options: Options): Required<Options> {
  return { ...defaults, ...options }
}

const resolved = resolve({ pageSize: 50 })
console.log(resolved.theme, resolved.pageSize)
Résultat
dark 50

Définition et utilisation

#

Required<Type> fait l’inverse de Partial : il retire le point d’interrogation de tous les champs, donc chacun devient obligatoire. Le type du champ perd aussi la variante undefined qui venait du fait d’être optionnel.

C’est utile lorsqu’une configuration, une fois fusionnée avec des valeurs par défaut, est déjà complète. Une fonction accepte Partial<Config> et renvoie Required<Config>, donc le reste du code n’a pas besoin de vérifier les champs manquants.

Comme les autres types utilitaires, il fonctionne de façon superficielle : les objets imbriqués conservent leurs champs optionnels.

Syntaxe

#
Syntaxe
type New = Required<Type>

Paramètres de type

#
  • Type

    type d’objet

    Le type dont les champs doivent devenir obligatoires.

Bonnes pratiques

#
  • Le schéma « Partial en entrée, Required en sortie » fonctionne très bien pour des options avec des valeurs par défaut.
  • Faites attention en étalant des objets avec spread : un undefined explicite dans les options écrasera la valeur par défaut.

Entrées associées

#

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