API reference › @evolu/common › Type › optional
function optional<T>(
type: ValidateOptionalPropertyType<T>,
): OptionalProperty<T>;
Defined in: packages/common/src/Type.ts:10298
Optional object property.
An optional property may be absent. If present, its value is validated by the
provided Type, so optionality does not implicitly accept undefined. Use
undefinedOr when a present property may contain undefined.
Example
import { assertOk, String, object, optional, undefinedOr } from "@evolu/common";
const User = object({
name: String,
nickname: optional(String),
preferredName: optional(undefinedOr(String)),
});
assertOk(User.fromUnknown({ name: "Ada" }), { name: "Ada" });
assertOk(User.fromUnknown({ name: "Ada", preferredName: undefined }), {
name: "Ada",
preferredName: undefined,
});