フィールドの定義
クライアント型でフィールドを定義することは、モデル型のインスタンスを最初の引数として受け取り、フィールド値を返すResolver関数を定義するのと同様に簡単です。エクスポートされた関数名は、フィールド名と一致する必要があることに注意してください。
構文
Relay Resolverは、Resolver関数の上のdocblockによってマークされます。@RelayResolver
は、Relay Resolver定義の開始を示すタグです。GraphQLモデル型TypeName
にフィールドを定義するには
- Docblock
GraphQLのスキーマ定義言語を使用して、TypeName
の後にドットを付け、フィールド定義を追加します。https://spec.graphql.org/June2018/#FieldDefinition
/**
* @RelayResolver TypeName.fieldName(arg1: ArgTypeName): FieldTypeName
*/
単純なフィールドは、次のようになります。
- Docblock
/**
* @RelayResolver User.name: String
*/
export function name(user: UserModel): string {
return user.name;
}
注記
Relayは、入力(この場合はモデルインスタンス)のいずれかが変更された場合に、Resolverを効率的に再計算するため、Resolver関数のメモ化について心配する必要はありません。
これは、モデル型から読み取り、スカラー値を返す単純なResolverです。Resolverフィールドがサポートする機能の完全なメニューについては、以下を参照してください。