# Type Alias: Expr\<T\>

```ts
type Expr<T> = 0 extends 1 & T ? DynExpr : unknown extends T ? DynExpr : [NonNullable<T>] extends [never] ? DynExpr : [NonNullable<T>] extends [CelInt] ? IntExpr : [NonNullable<T>] extends [number] ? NumExpr : [NonNullable<T>] extends [string] ? StrExpr<NonNullable<T> & string> : [NonNullable<T>] extends [boolean] ? BoolExpr : [NonNullable<T>] extends [Cited<infer B>] ? VersionExpr<B> : [NonNullable<...>] extends [ReadonlyArray<...>] ? ListExpr<E> : [...] extends [...] ? ObjExpr<...> : DynExpr;
```

Defined in: [packages/core/src/records/contract-builder.ts:65](https://github.com/leifriksheim/minca/blob/main/core/src/records/contract-builder.ts#L65)

The expression for a value of type `T`

## Type Parameters

| Type Parameter |
| ------ |
| <a id="type-parameter-t"></a> `T` |
