本文へスキップ
バージョン: v18.0.0

フィールドの定義

クライアント型でフィールドを定義することは、モデル型のインスタンスを最初の引数として受け取り、フィールド値を返すResolver関数を定義するのと同様に簡単です。エクスポートされた関数名は、フィールド名と一致する必要があることに注意してください。

構文

Relay Resolverは、Resolver関数の上のdocblockによってマークされます。@RelayResolverは、Relay Resolver定義の開始を示すタグです。GraphQLモデル型TypeNameにフィールドを定義するには

GraphQLのスキーマ定義言語を使用して、TypeNameの後にドットを付け、フィールド定義を追加します。https://spec.graphql.org/June2018/#FieldDefinition

/**
* @RelayResolver TypeName.fieldName(arg1: ArgTypeName): FieldTypeName
*/

単純なフィールドは、次のようになります。

/**
* @RelayResolver User.name: String
*/
export function name(user: UserModel): string {
return user.name;
}
注記

Relayは、入力(この場合はモデルインスタンス)のいずれかが変更された場合に、Resolverを効率的に再計算するため、Resolver関数のメモ化について心配する必要はありません。

これは、モデル型から読み取り、スカラー値を返す単純なResolverです。Resolverフィールドがサポートする機能の完全なメニューについては、以下を参照してください。