types: {
string: (
defaultValue?: string,
) => (
options?: { title?: string },
) => {
type: "string";
required: false;
default: undefined | string;
title?: string;
} & { type: "string"; required: false; default: undefined
| string } & {
required: (
defaultValue?: string,
) => (
options?: { title?: string },
) => {
type: "string";
required: true;
default: undefined | string;
title?: string;
} & { type: "string"; required: true; default: undefined
| string };
optional: (
defaultValue?: string,
) => (
options?: { title?: string },
) => {
type: "string";
required: false;
default: undefined | string;
title?: string;
} & { type: "string"; required: false; default: undefined
| string };
};
number: (
defaultValue?: number,
) => (
options?: { title?: string },
) => {
type: "number";
required: false;
default: undefined | number;
title?: string;
} & { type: "number"; required: false; default: undefined
| number } & {
required: (
defaultValue?: number,
) => (
options?: { title?: string },
) => {
type: "number";
required: true;
default: undefined | number;
title?: string;
} & { type: "number"; required: true; default: undefined
| number };
optional: (
defaultValue?: number,
) => (
options?: { title?: string },
) => {
type: "number";
required: false;
default: undefined | number;
title?: string;
} & { type: "number"; required: false; default: undefined
| number };
};
boolean: (
defaultValue?: boolean,
) => (
options?: { title?: string },
) => {
type: "boolean";
required: false;
default: undefined | boolean;
title?: string;
} & { type: "boolean"; required: false; default: undefined
| boolean } & {
required: (
defaultValue?: boolean,
) => (
options?: { title?: string },
) => {
type: "boolean";
required: true;
default: undefined | boolean;
title?: string;
} & { type: "boolean"; required: true; default: undefined
| boolean };
optional: (
defaultValue?: boolean,
) => (
options?: { title?: string },
) => {
type: "boolean";
required: false;
default: undefined | boolean;
title?: string;
} & { type: "boolean"; required: false; default: undefined
| boolean };
};
array: (
defaultValue?: any[],
) => (
options?: { title?: string },
) => {
type: "array";
required: false;
default: undefined | any[];
title?: string;
} & { type: "array"; required: false; default: undefined
| any[] } & {
required: (
defaultValue?: any[],
) => (
options?: { title?: string },
) => {
type: "array";
required: true;
default: undefined | any[];
title?: string;
} & { type: "array"; required: true; default: undefined
| any[] };
optional: (
defaultValue?: any[],
) => (
options?: { title?: string },
) => {
type: "array";
required: false;
default: undefined | any[];
title?: string;
} & { type: "array"; required: false; default: undefined
| any[] };
};
enum: <const T extends readonly (string | number)[]>(
...values: T,
) => (
defaultValue?: T[number],
) => (
options?: { title?: string },
) => {
type: "enum";
required: false;
values: T;
default: undefined | T[number];
title?: string;
} & {
type: "enum";
required: false;
values: T;
default: undefined
| T[number];
} & {
required: (
defaultValue?: T[number],
) => (
options?: { title?: string },
) => {
type: "enum";
required: true;
values: T;
default: undefined | T[number];
title?: string;
} & {
type: "enum";
required: true;
values: T;
default: undefined
| T[number];
};
optional: (
defaultValue?: T[number],
) => (
options?: { title?: string },
) => {
type: "enum";
required: false;
values: T;
default: undefined | T[number];
title?: string;
} & {
type: "enum";
required: false;
values: T;
default: undefined
| T[number];
};
};
} = ...
Type declaration
string: (
defaultValue?: string,
) => (
options?: { title?: string },
) => {
type: "string";
required: false;
default: undefined | string;
title?: string;
} & { type: "string"; required: false; default: undefined
| string } & {
required: (
defaultValue?: string,
) => (
options?: { title?: string },
) => {
type: "string";
required: true;
default: undefined | string;
title?: string;
} & { type: "string"; required: true; default: undefined
| string };
optional: (
defaultValue?: string,
) => (
options?: { title?: string },
) => {
type: "string";
required: false;
default: undefined | string;
title?: string;
} & { type: "string"; required: false; default: undefined
| string };
}
number: (
defaultValue?: number,
) => (
options?: { title?: string },
) => {
type: "number";
required: false;
default: undefined | number;
title?: string;
} & { type: "number"; required: false; default: undefined
| number } & {
required: (
defaultValue?: number,
) => (
options?: { title?: string },
) => {
type: "number";
required: true;
default: undefined | number;
title?: string;
} & { type: "number"; required: true; default: undefined
| number };
optional: (
defaultValue?: number,
) => (
options?: { title?: string },
) => {
type: "number";
required: false;
default: undefined | number;
title?: string;
} & { type: "number"; required: false; default: undefined
| number };
}
boolean: (
defaultValue?: boolean,
) => (
options?: { title?: string },
) => {
type: "boolean";
required: false;
default: undefined | boolean;
title?: string;
} & { type: "boolean"; required: false; default: undefined
| boolean } & {
required: (
defaultValue?: boolean,
) => (
options?: { title?: string },
) => {
type: "boolean";
required: true;
default: undefined | boolean;
title?: string;
} & { type: "boolean"; required: true; default: undefined
| boolean };
optional: (
defaultValue?: boolean,
) => (
options?: { title?: string },
) => {
type: "boolean";
required: false;
default: undefined | boolean;
title?: string;
} & { type: "boolean"; required: false; default: undefined
| boolean };
}
array: (
defaultValue?: any[],
) => (
options?: { title?: string },
) => {
type: "array";
required: false;
default: undefined | any[];
title?: string;
} & { type: "array"; required: false; default: undefined
| any[] } & {
required: (
defaultValue?: any[],
) => (
options?: { title?: string },
) => {
type: "array";
required: true;
default: undefined | any[];
title?: string;
} & { type: "array"; required: true; default: undefined
| any[] };
optional: (
defaultValue?: any[],
) => (
options?: { title?: string },
) => {
type: "array";
required: false;
default: undefined | any[];
title?: string;
} & { type: "array"; required: false; default: undefined
| any[] };
}
enum: <const T extends readonly (string | number)[]>(
...values: T,
) => (
defaultValue?: T[number],
) => (
options?: { title?: string },
) => {
type: "enum";
required: false;
values: T;
default: undefined | T[number];
title?: string;
} & {
type: "enum";
required: false;
values: T;
default: undefined
| T[number];
} & {
required: (
defaultValue?: T[number],
) => (
options?: { title?: string },
) => {
type: "enum";
required: true;
values: T;
default: undefined | T[number];
title?: string;
} & {
type: "enum";
required: true;
values: T;
default: undefined
| T[number];
};
optional: (
defaultValue?: T[number],
) => (
options?: { title?: string },
) => {
type: "enum";
required: false;
values: T;
default: undefined | T[number];
title?: string;
} & {
type: "enum";
required: false;
values: T;
default: undefined
| T[number];
};
}
Фабрика типов для создания схемы контекста
Предоставляет методы для создания типизированных полей контекста:
string- строковые значенияnumber- числовые значенияboolean- булевы значенияarray- массивы (рекомендуется хранить только ID)enum- перечисленияКаждый тип поддерживает методы
.required()и.optional()для указания обязательности поля.Example