API reference@evolu/commonType › base

function base<Name, T, Error>(
  name: Name,
  fromUnknown: (value: unknown) => Result<T, Error>,
): Type<Name, T, T, Error>;

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

Base Type.

A Base Type validates that a value conforms to a specific TypeScript type.

Example

const String = base("String", (value) =>
  typeof value === "string"
    ? ok(value)
    : err<StringError>({ type: "String", value }),
);

interface StringError extends TypeError<"String"> {}

const formatStringError = createTypeErrorFormatter<StringError>(
  (error) => `A value ${error.value} is not a string`,
);