INNER CODE UNIT · TypeScript
createType
lstkz/ts-mongoose · src/Type.ts:17
const createType = <T>(type: any) => <O extends TypeOptions<T>>(options?: O) =>
(({ ...(options ? options : {}), type } as unknown) as GetType<
O,
T extends string ? EnumOrString<O> : T
>);
export const Type = {
number: createType<number>(Number),
boolean: createType<boolean>(Boolean),
date: createType<Date>(Date),
mixed: createType<any>(Schema.Types.Mixed),
objectId: createType<Types.ObjectId>(Schema.Types.ObjectId),
string: createType<string>(String),
decimal128: createType<Types.Decimal128>(Schema.Types.Decimal128),
buffer: createType<Types.Buffer>(Schema.Types.Buffer),
object: <O extends TypeOptions<object>>(options?: O) => ({
of<T extends object>(schema: T) {
return ({