API reference@evolu/commonType › partial

function partial<Props>(
  props: Props,
  ..._validation: [ObjectValidationError<Props>] extends [never]
    ? []
    : [ValidationFailure<ObjectValidationError<Props>>]
): ObjectType<PartialObjectProps<Props>>;

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

Object Type with every property optional.

No property is required, but every present property must still satisfy its Type. For withDefault properties, this disables the missing-property default; defaults for present null or undefined values still apply.

Example

import {
  assertFalse,
  assertOk,
  PositiveInt,
  String,
  partial,
} from "@evolu/common";

const PartialUser = partial({ name: String, age: PositiveInt });
const emptyPartialUser: typeof PartialUser.Output = {};

assertOk(PartialUser.fromUnknown({}), emptyPartialUser);
assertOk(PartialUser.fromUnknown({ name: "Ada" }), { name: "Ada" });
assertFalse(PartialUser.fromUnknown({ age: -1 }).ok);