# Type Alias: inferTRPCClientTypes<TInferrable>

> 

> **inferTRPCClientTypes**\<`TInferrable`\>: `TInferrable` *extends* [`AnyTRPCClientTypes`](https://trpc.io/docs/typedoc/server/index/type-aliases/AnyTRPCClientTypes.md) ? `PickTypes`\<`TInferrable`\> : `TInferrable` *extends* `RootConfigLike` ? `PickTypes`\<`TInferrable`\[`"$types"`\]\> : `TInferrable` *extends* `InitLike` ? `PickTypes`\<`TInferrable`\[`"_config"`\]\[`"$types"`\]\> : `TInferrable` *extends* `RouterLike` ? `PickTypes`\<`TInferrable`\[`"_def"`\]\[`"_config"`\]\[`"$types"`\]\> : `never`

Defined in: [packages/server/src/unstable-core-do-not-import/clientish/inferrable.ts:47](https://github.com/trpc/trpc/blob/7c907acfd8b31929214792e3b8c2ad7a8ac72563/packages/server/src/unstable-core-do-not-import/clientish/inferrable.ts#L47)

The root types a client needs, read from a router, a root object or a
root config.

## Type Parameters

| Type Parameter |
| ------ |
| `TInferrable` *extends* `InferrableClientTypes` |
