# defineRecipe (/docs/api/core/functions/defineRecipe)



```ts
function defineRecipe<Q>(input): Recipe<Q>;
```

Returns the object it built, not `parse`'s copy, whose type is the erased `Recipe`.

## Type Parameters [#type-parameters]

| Type Parameter                                                   |
| ---------------------------------------------------------------- |
| `Q` *extends* [`Questions`](/docs/api/core/interfaces/Questions) |

## Parameters [#parameters]

| Parameter | Type                                                                     |
| --------- | ------------------------------------------------------------------------ |
| `input`   | [`DefineRecipeInput`](/docs/api/core/interfaces/DefineRecipeInput)\<`Q`> |

## Returns [#returns]

[`Recipe`](/docs/api/core/type-aliases/Recipe)\<`Q`>
