Thuta Learning
TypeScript
AdvancedProgrammingintermediate

Conditional Types & infer

TypeScriptသင်ခန်းစာ 21

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

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

Conditional Types & infer မှာ caller နဲ့ implementation ကြား contract ကို minimal ဖြစ်အောင်ရေးပါ။ Generic constraints, variance, readonly data နဲ့ structural compatibility ကိုစဉ်းစားပြီး type assertion ဖြင့်အမှန်တရားကိုဖုံးမထားပါနှင့်။

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

Conditional Types & infer မှာ caller နဲ့ implementation ကြား contract ကို minimal ဖြစ်အောင်ရေးပါ။ Generic constraints, variance, readonly data နဲ့ structural compatibility ကိုစဉ်းစားပြီး type assertion ဖြင့်အမှန်တရားကိုဖုံးမထားပါနှင့်။

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

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

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

typescript
type AwaitedResult<T> = T extends Promise<infer Value> ? Value : T;
type ApiResult = AwaitedResult<Promise<{ id: string }>>;

const item: ApiResult = { id: 'task-1' };
You should see
ApiResult သည် Promise အတွင်း value type ဖြစ်သွားမည်။

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

Conditional Types & infer 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 မှန်ပြီဟုယူဆခြင်း။

Conditional TypesTypeScript

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

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

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

Conditional Types & infer 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: ApiResult သည် Promise အတွင်း value type ဖြစ်သွားမည်။

Conditional Types & infer | Thuta Learning