Pick<Type, Keys>

Crée un type contenant uniquement les propriétés sélectionnées d’un autre type.

Sur cette page

Exemple

#
TypeScript
interface User {
  id: number
  name: string
  email: string
  passwordHash: string
}

type PublicUser = Pick<User, 'id' | 'name'>

function toPublic(user: User): PublicUser {
  return { id: user.id, name: user.name }
}

console.log(toPublic({ id: 7, name: 'Léa', email: 'l@x.fr', passwordHash: '…' }))
Résultat
{ id: 7, name: 'Léa' }

Définition et utilisation

#

Pick<Type, Keys> ne sélectionne dans un type que les champs indiqués. Pick<User, "id" | "name"> est un objet avec seulement les champs id et name, avec exactement les mêmes types que dans User.

C’est utile quand un composant ou une fonction n’a besoin que d’un fragment d’un objet plus grand. Vous n’avez alors pas à transmettre ni à créer l’objet complet, et le type reste lié à sa source.

Les clés doivent exister dans le type source. Une faute de frappe dans le nom d’un champ sera signalée par le compilateur.

Syntaxe

#
Syntaxe
type New = Pick<Type, "field1" | "field2">

Paramètres de type

#
  • Type

    type d’objet

    Le type source.
  • Keys

    union des clés de Type

    Les champs qui doivent rester dans le nouveau type.

Bonnes pratiques

#
  • Quand il est plus simple d’énumérer les champs à retirer que ceux à garder, utilisez Omit.
  • Les types dérivés par Pick se mettent à jour automatiquement quand le type source change.

Entrées associées

#

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