# resolverFor | @coopenomics/sdk
Documentation for @coopenomics/sdk

# Function resolverFor

- resolverFor< X , T , Z >(type, field, fn): ((args?, source?) => Z extends keyof ModelTypes [ T ]
  ? X | ModelTypes [ T ][ Z < Z >] | Promise< ModelTypes [ T ][ Z < Z >]>
  : never)

- #### Type Parameters

  - X
  - T extends keyof ResolverInputTypes
  - Z extends string | number | symbol

  #### Parameters

  - type: T
  - field: Z
  - fn: ((args, source) => Z extends keyof ModelTypes [ T ]
    ? X | ModelTypes [ T ][ Z < Z >] | Promise< ModelTypes [ T ][ Z < Z >]>
    : never)
    - - (args, source): Z extends keyof ModelTypes [ T ]
        ? X | ModelTypes [ T ][ Z < Z >] | Promise< ModelTypes [ T ][ Z < Z >]>
        : never

      - #### Parameters

        - args: Required< ResolverInputTypes [ T ]>[ Z ] extends [Input, any]
          ? Input
          : any
        - source: any

        #### Returns Z extends keyof ModelTypes [ T ]
        ? X | ModelTypes [ T ][ Z < Z >] | Promise< ModelTypes [ T ][ Z < Z >]>
        : never

  #### Returns ((args?, source?) => Z extends keyof ModelTypes [ T ]
  ? X | ModelTypes [ T ][ Z < Z >] | Promise< ModelTypes [ T ][ Z < Z >]>
  : never)

  - - (args?, source?): Z extends keyof ModelTypes [ T ]
      ? X | ModelTypes [ T ][ Z < Z >] | Promise< ModelTypes [ T ][ Z < Z >]>
      : never

    - #### Parameters

      - `Optional` args: any
      - `Optional` source: any

      #### Returns Z extends keyof ModelTypes [ T ]
      ? X | ModelTypes [ T ][ Z < Z >] | Promise< ModelTypes [ T ][ Z < Z >]>
      : never

  - Defined in components/sdk/src/zeus/index.ts:730