smalljs$molঅনুসন্ধান⌘ Kডকুমেন্টেশনপ্লেগ্রাউন্ডতুলনাইকোসিস্টেমসম্পর্কেBN
ডেটা স্কিমাGetting Startedপরিচিতিমানসিক মডেলশুরু করাTypeScript থেকে view.treeপ্রকল্পের কাঠামোটুলিংEssentialsইনস্টলেশনভিউস্টেট ও রিয়্যাক্টিভিটিরাউটিংরেন্ডারিংটেস্টিংডিপ্লয়সমস্যা সমাধানDataডেটা ফেচিংডেটা স্কিমাGiper BazaMoreশোকেসReact, Vue ও Svelte থেকেকুকবুকAdvancedপ্লাগইনমডিউল মেটাডেটাঅফলাইনগোস্ট ভিউAboutসাধারণ জিজ্ঞাসাটিমরিলিজ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

ডেটা স্কিমা

নেটওয়ার্ক রিকোয়েস্ট থেকে ফিরে আসা ডেটার টাইপ any——TypeScript আপনার কাস্টে বিশ্বাস করে, কিন্তু সার্ভার অন্য কিছু পাঠাতে পারে। $mol দুটি ছোট রানটাইম-স্কিমা লাইব্রেরি সরবরাহ করে যা অবিশ্বস্ত JSON-কে একটি টাইপড, ভ্যালিডেটেড মানে পরিণত করে এবং আকৃতি ভুল হলে সশব্দে ব্যর্থ হয়——একটি পঠনযোগ্য পাথসহ। ডেটা যেখানে অ্যাপে প্রবেশ করে ঠিক সেখানে এগুলো ব্যবহার করুন, বেশিরভাগ সময় একটি fetch রেসপন্সে।

দুটি লাইব্রেরি

$mol_data——সংক্ষিপ্ত, ফাংশনাল পার্সার (zod-এর মতো)। আপনি ছোট পার্সিং ফাংশন কম্পোজ করেন এবং ফলাফলটি একটি মানের ওপর কল করেন।$mol_schema——ডিফল্টসহ ক্লাস-ভিত্তিক স্কিমা। আপনি একটি রেকর্ড ক্লাস এক্সটেন্ড করেন এবং .guard(), .cast(), .check(), আর একটি .default পান।দুটোই রানটাইমে ভ্যালিডেট করে এবং আপনার জন্য স্ট্যাটিক টাইপ ইনফার করে। দ্রুত DTO ও (ডি)সিরিয়ালাইজেশনের জন্য $mol_data; ডিফল্ট মান ও শিথিল কাস্টিংসহ নামযুক্ত, পুনর্ব্যবহারযোগ্য স্কিমা ক্লাস চাইলে $mol_schema

$mol_data

আকৃতিকে ফিল্ড পার্সারের একটি রেকর্ড হিসেবে বর্ণনা করুন:1const UserDTO = $mol_data_record({2 name: $mol_data_string,3 age: $mol_data_optional( $mol_data_integer ),4 mail: $mol_data_email,5})এটিকে কাঁচা মানের ওপর কল করুন। বৈধ ডেটা পুরোপুরি টাইপড হয়ে পার হয়; অবৈধ ডেটা একটি $mol_data_error থ্রো করে, যা ব্যর্থ হওয়া সঠিক পাথটি নাম ধরে বলে: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 /.+@.+/ইনফার করা টাইপটি typeof UserDTO.Value দিয়ে যেকোনো জায়গায় পুনর্ব্যবহার করুন:1function greet( user: typeof UserDTO.Value ) {2 return `Hello, ${ user.name }`3}বিল্ডিং ব্লকের মধ্যে আছে $mol_data_string, $mol_data_number, $mol_data_integer, $mol_data_boolean, $mol_data_email, $mol_data_optional, $mol_data_nullable, $mol_data_variant (কয়েকটি টাইপের একটি), $mol_data_array, $mol_data_dict$mol_data_record$mol_data_pipe একটি পার্স করা মানকে একটি ট্রান্সফর্মে পাঠায়——যেমন একটি ISO স্ট্রিংকে একটি $mol_time_moment-এ——যা একই সঙ্গে (ডি)সিরিয়ালাইজেশনের কাজও করে।

$mol_schema

একটি স্কিমাকে একটি রেকর্ড-এক্সটেন্ডকারী ক্লাস হিসেবে সংজ্ঞায়িত করুন:1export class $my_user extends $mol_schema_record({2 name: $mol_schema_string,3 age: $mol_schema_natural,4}) {}তখন এটি প্রয়োগের তিনটি উপায় পাবেন, সঙ্গে একটি রেডিমেড ডিফল্ট: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 }লিফ স্কিমার মধ্যে আছে $mol_schema_string, $mol_schema_integer, $mol_schema_natural, $mol_schema_float, $mol_schema_boolean, $mol_schema_enum([ ... ])$mol_schema_pattern( /re/ )। এগুলোকে $mol_schema_list( Item ), $mol_schema_dict([ Key, Val ]), $mol_schema_maybe( S ) (মান, null, বা undefined), $mol_schema_some([ ... ]) (একটি ইউনিয়ন), ও $mol_schema_partial({ ... }) দিয়ে কম্পোজ করুন। অন্য একটি রেকর্ডের ফিল্ড ...Base.Fields দিয়ে স্প্রেড করুন:
GitHub-এ এই পৃষ্ঠা সম্পাদনা করুনএটি কি সহায়ক ছিল?হ্যাঁনাপূর্ববর্তীডেটা ফেচিংপরবর্তীGiper Baza
এই পৃষ্ঠায়দুটি লাইব্রেরি$mol_data$mol_schemaএকটি fetch রেসপন্স ভ্যালিডেট করাপরবর্তী
Type to search the documentation.