Schema
A Standard Schema whose output is T.
Verwendung
Persist a preference
import { Text, Toggle, VStack, persisted, type Schema } from 'kuito';
const booleanSchema: Schema<boolean> = {
'~standard': {
version: 1,
vendor: 'example',
validate: (value) =>
typeof value === 'boolean' ? { value } : { issues: [{ message: 'Expected boolean' }] },
},
};
export function Preferences() {
const wifiOnly = persisted(true, { key: 'downloads.wifiOnly', schema: booleanSchema });
return (
<VStack gap={12}>
<Toggle label="Download on Wi-Fi only" checked={wifiOnly} />
<Text>{wifiOnly.value ? 'Wi-Fi only' : 'Any connection'}</Text>
</VStack>
);
}Typdeklaration
export interface Schema<T> {
readonly '~standard': {
readonly version: 1;
readonly vendor: string;
readonly validate: (value: unknown) => SchemaResult<T> | Promise<SchemaResult<T>>;
readonly types?: { readonly input: unknown; readonly output: T } | undefined;
};
}Mitglieder 1
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
~standardschreibgeschützt | { readonly version: 1; readonly vendor: string; readonly validate: (value: unknown) => SchemaResult<T> | Promise<SchemaResult<T>>; readonly types?: { readonly input: unknown; readonly output: T; } | undefined;} | Ja | — |
~standard — verschachtelte Felder
~standard Felder
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
versionschreibgeschützt | 1 | Ja | — |
vendorschreibgeschützt | string | Ja | — |
validateschreibgeschützt | (value: unknown) => SchemaResult<T> | Promise<SchemaResult<T>> | Ja | — |
typesschreibgeschützt | { readonly input: unknown; readonly output: T;} | Nein | — |
validate — Methodensignaturen
Signaturen
(value: unknown): SchemaResult<T> | Promise<SchemaResult<T>>Parameter
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
value | unknown | Ja | — |
Rückgabe
SchemaResult<T> | Promise<SchemaResult<T>>
types — verschachtelte Felder
types Felder
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
inputschreibgeschützt | unknown | Ja | — |
outputschreibgeschützt | T | Ja | — |
Generiert aus den öffentlichen TypeScript-Deklarationen: Signaturen, Props und Standardwerte stammen aus der geprüften Quelle, Beschreibungen aus deren JSDoc. Kein Standardwert ist erfunden.