# Extensions
Les extensions vous permettent de lier des données à vos éléments GraphQL (type, input, interface, champs, etc...).
Ceci peut être très utile dans certains cas, si vous voulez par exemple créer un CMS, cela pourrait requérir d'avoir des métadonnées sur vos champs.
Vous pouvez assigner extensions
grâce aux paramètres via tous les décorateurs d'élément GraphQL (@ObjectType
, @InputType
, @InterfaceType
@Arg
, @Field
, ...). Cependant si vous voulez assigner extensions
de façon commune pour tous les types, ou tout les champs, il est plus pratique de passer par @Extensions
.
# Utilisation de @Extensions
Ceci se fait simplement en passant un objet au décorateur @Extensions
@ObjectType()
@InputType()
@Extensions({ type: "class" })
class User {
@ObjectField()
@InputField()
@Extensions({ type: "short-text" })
username: string;
}
# Utilisation des extensions de façon distincte
Ceci se fait via les paramètres des décorateurs d'éléments:
@ObjectType({ type: "object-class" })
@InputType({ type: "input-class" })
class User {
@ObjectField({ type: "object-short-text" })
@InputField({ type: "input-short-text" })
username: string;
}