API reference@evolu/commonType › nullableToOptional

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

Defined in: packages/common/src/Type.ts:11596

Object Type making every property whose Union Type includes 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

import { assertOk, String, nullOr, nullableToOptional } from "@evolu/common";

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,
});