[API reference](https://evolu.dev/docs/api-reference) › [@evolu/common](https://evolu.dev/docs/api-reference/common) › [Type](https://evolu.dev/docs/api-reference/common/Type) › nullableToOptional

```ts
function nullableToOptional<Props>(
  props: Props,
  ..._validation: [ObjectValidationError<Props>] extends [never]
    ? []
    : [ValidationFailure<ObjectValidationError<Props>>]
): StrictObjectType<NullableToOptionalProps<Props>>;
```

Defined in: [packages/common/src/Type.ts:11596](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Type.ts#L11596)

Object [Type](https://evolu.dev/docs/api-reference/common/Type/interfaces/Type) making every property whose Union Type includes
[Null](https://evolu.dev/docs/api-reference/common/Type/variables/Null) optional.

The property retains its original Union Type, so consumers may omit it, set
it to `null`, or provide any other member of that Union. Properties without
`null` remain required.

### Example

```ts

const User = nullableToOptional({
  name: String,
  nickname: nullOr(String),
});

assertOk(User.fromUnknown({ name: "Ada" }), { name: "Ada" });
assertOk(User.fromUnknown({ name: "Ada", nickname: null }), {
  name: "Ada",
  nickname: null,
});
```