TypeScriptTypes utilitaires
Required<Type>
Crée un type dans lequel toutes les propriétés sont obligatoires.
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 «
Partialen entrée,Requireden sortie » fonctionne très bien pour des options avec des valeurs par défaut. - Faites attention en étalant des objets avec spread : un
undefinedexplicite dans les options écrasera la valeur par défaut.
Entrées associées
#- Partial<Type>Crée un type dans lequel toutes les propriétés sont optionnelles.
- Readonly<Type>Crée un type dans lequel toutes les propriétés sont en lecture seule.
- Propriétés optionnelles (?)Des propriétés qui peuvent, mais ne doivent pas obligatoirement, apparaître dans un objet.
- Types mappésCréent un nouveau type d’objet en transformant chaque clé d’un autre type.
Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.