smalljs$molHledat⌘ KDokumentacePlaygroundPorovnáníEkosystémO projektuCS
Datová schémataGetting StartedÚvodMyšlenkový modelZačínámeZ TypeScriptu do view.treeStruktura projektuNástrojeEssentialsInstalacePohledyStav a reaktivitaSměrováníVykreslováníTestováníNasazeníŘešení problémůDataNačítání datDatová schémataGiper BazaMoreVýkladní skříňZ React, Vue a SvelteKuchařkaAdvancedPluginyMetadata moduluOfflineGhost pohledyAboutČasté dotazyTýmVydáníAPI$mol_button_major$mol_button_minor$mol_string$mol_number$mol_text$mol_paragraph$mol_list$mol_row$mol_link$mol_check$mol_switch$mol_select$mol_scroll$mol_page$mol_pick

Datová schémata

Data, která se vracejí ze síťového požadavku, mají typ any — TypeScript věří vašemu přetypování, ale server může poslat něco jiného. $mol přináší dvě malé runtime knihovny schémat, které promění nedůvěryhodný JSON v typovanou, ověřenou hodnotu a hlasitě selžou — s čitelnou cestou — když je tvar špatný. Používejte je přímo tam, kde data vstupují do aplikace, nejčastěji na odpovědi fetch.

Dvě knihovny

$mol_data — stručné funkcionální parsery (ve stylu zod). Skládáte malé parsovací funkce a výsledek voláte na hodnotě.$mol_schema — schémata založená na třídách s výchozími hodnotami. Rozšíříte třídu záznamu a získáte .guard(), .cast(), .check() a .default.Obě ověřují za běhu a odvodí za vás statický typ. Sáhněte po $mol_data pro rychlé DTO a (de)serializaci; sáhněte po $mol_schema, když chcete pojmenované, znovupoužitelné třídy schémat s výchozími hodnotami a volnějším přetypováním.

$mol_data

Popište tvar jako záznam parserů polí:1const UserDTO = $mol_data_record({2 name: $mol_data_string,3 age: $mol_data_optional( $mol_data_integer ),4 mail: $mol_data_email,5})Zavolejte jej na surové hodnotě. Platná data projdou, plně typovaná; neplatná data vyhodí $mol_data_error s přesnou cestou, která selhala:1const user = UserDTO( json )2// user: { readonly name: string; readonly age?: number; readonly mail: string }3 4// If json.mail is "</script>", it throws:5// ["mail"] </script> is not a /.+@.+/Odvozený typ znovu použijte kdekoli pomocí typeof UserDTO.Value:1function greet( user: typeof UserDTO.Value ) {2 return `Hello, ${ user.name }`3}Mezi stavební kameny patří $mol_data_string, $mol_data_number, $mol_data_integer, $mol_data_boolean, $mol_data_email, $mol_data_optional, $mol_data_nullable, $mol_data_variant (jeden z několika typů), $mol_data_array, $mol_data_dict a $mol_data_record. $mol_data_pipe přivede rozparsovanou hodnotu do transformace — například řetězec ISO do $mol_time_moment — což zároveň slouží jako (de)serializace.

$mol_schema

Definujte schéma jako třídu, která rozšiřuje záznam:1export class $my_user extends $mol_schema_record({2 name: $mol_schema_string,3 age: $mol_schema_natural,4}) {}Pak máte tři způsoby, jak jej použít, plus hotovou výchozí hodnotu:1const safe = $my_user.guard( input ) // strict: throws on wrong data2const relaxed = $my_user.cast( input ) // fills defaults instead of throwing3if ( $my_user.check( input ) ) { /* input is $my_user in here */ }4const blank = $my_user.default // { name: '', age: 0 }Mezi listová schémata patří $mol_schema_string, $mol_schema_integer, $mol_schema_natural, $mol_schema_float, $mol_schema_boolean, $mol_schema_enum([ ... ]) a $mol_schema_pattern( /re/ ). Skládejte je pomocí $mol_schema_list( Item ), $mol_schema_dict([ Key, Val ]), $mol_schema_maybe( S ) (hodnota, null nebo undefined), $mol_schema_some([ ... ]) (sjednocení) a $mol_schema_partial({ ... }). Rozprostřete pole jiného záznamu pomocí ...Base.Fields:
Upravit tuto stránku na GitHubuBylo to užitečné?AnoNePředchozíNačítání datDalšíGiper Baza
Na této stránceDvě knihovny$mol_data$mol_schemaOvěření odpovědi fetchDále
Type to search the documentation.