API reference › @evolu/common › Type › omit

function omit<
  Props extends Readonly<
    Record<
      string,
      | TypeNode
      | OptionalProperty<TypeNode>
      | WithDefaultProperty<TypeNode, unknown, "replace" | "preserve">
    >
  >,
  Keys extends readonly (keyof Props)[],
  Rest extends ObjectRecordTypeNode | undefined = undefined,
>(
  objectType: {
    props: Props;
    record?: Rest;
  } & NoInfer,
  ...keys: Keys & [ValidateOmitKeys<Keys>] extends [never]
    ? unknown
    : readonly [ValidationFailure<ValidateOmitKeys<Keys>>]
): ObjectType<Omit<Props, Keys[number]>, Rest>;

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

Object Type without the selected declared properties.

Example

import { assertOk, String, object, omit } from "@evolu/common";

const User = object({ name: String, password: String });
const PublicUser = omit(User, "password");

assertOk(PublicUser.fromUnknown({ name: "Ada" }), { name: "Ada" });