Thuta Learning
TypeScript
IntermediateProgrammingintermediate

unknown, never & Exhaustive Checking

TypeScriptသင်ခန်းစာ 7

ဒီခန်းပြီးရင် ဘာတတ်သွားမလဲ

  • unknown, never & Exhaustive Checking ရဲ့ runtime value နဲ့ compile-time type ဆက်နွယ်မှုကိုရှင်းပြနိုင်ရန်
  • Strict mode တွင် unsafe input နဲ့ edge cases စမ်းနိုင်ရန်
  • Maintainable TypeScript contracts ရေးနိုင်ရန်

unknown, never & Exhaustive Checking ကို annotation syntax အဖြစ်သာမမြင်ဘဲ JavaScript runtime value များ၏ဖြစ်နိုင်သော set, control-flow narrowing, nullability နဲ့ exhaustive checking ကိုဖော်ပြသော model အဖြစ်နားလည်ပါ။ Inference ကိုဦးစားပေးပြီး unsafe input ကို unknown မှစပါ။

ပိုပြီးနားလည်ထားရမယ့် အချက်

unknown, never & Exhaustive Checking ကို annotation syntax အဖြစ်သာမမြင်ဘဲ JavaScript runtime value များ၏ဖြစ်နိုင်သော set, control-flow narrowing, nullability နဲ့ exhaustive checking ကိုဖော်ပြသော model အဖြစ်နားလည်ပါ။ Inference ကိုဦးစားပေးပြီး unsafe input ကို unknown မှစပါ။

လက်တွေ့မှာ ဘယ်လိုအသုံးချမလဲ

unknown, never & Exhaustive Checking example ကို strict mode ဖြင့် type-check လုပ်ပြီး valid, null/undefined, malformed API data, union variant အသစ်နဲ့ module boundary cases စမ်းပါ။ Type error ကို assertion သို့ any ဖြင့်ပိတ်မထားဘဲ contract သို့ validation ကိုပြင်ပါ။

ဒီသင်ခန်းစာပြီးရင်

typescript
type Result = { kind: 'ok'; value: number } | { kind: 'error'; message: string };

function show(result: Result): string {
  switch (result.kind) {
    case 'ok': return String(result.value);
    case 'error': return result.message;
    default: {
      const impossible: never = result;
      return impossible;
    }
  }
}
You should see
Unhandled variant အသစ်ထည့်လျှင် compile-time error ဖြစ်မည်။

ကိုယ်တိုင်စမ်းကြည့်ရန်

unknown, never & Exhaustive Checking example ကို strict mode ဖြင့် type-check လုပ်ပြီး valid, null/undefined, malformed API data, union variant အသစ်နဲ့ module boundary cases စမ်းပါ။ Type error ကို assertion သို့ any ဖြင့်ပိတ်မထားဘဲ contract သို့ validation ကိုပြင်ပါ။

Type Safety သတိပေးချက်

TypeScript compile အောင်ရုံဖြင့် API data နဲ့ runtime behavior မှန်ပြီဟုယူဆခြင်း။

Type CompatibilityTypeScript

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • TypeScript compile အောင်ရုံဖြင့် API data နဲ့ runtime behavior မှန်ပြီဟုယူဆခြင်း။
  • Error ကို any, as သို့ non-null assertion ဖြင့်ဖျောက်ပြီး contract မပြင်ခြင်း။

လက်တွေ့လေ့ကျင့်ခန်း

unknown, never & Exhaustive Checking example ကို strict mode ဖြင့် type-check လုပ်ပြီး valid, null/undefined, malformed API data, union variant အသစ်နဲ့ module boundary cases စမ်းပါ။ Type error ကို assertion သို့ any ဖြင့်ပိတ်မထားဘဲ contract သို့ validation ကိုပြင်ပါ။

You'll know it worked when: Unhandled variant အသစ်ထည့်လျှင် compile-time error ဖြစ်မည်။

unknown, never & Exhaustive Checking | Thuta Learning