> For the complete documentation index, see [llms.txt](https://lwin-moe-paing.gitbook.io/typescript-baby-by-lwin-moe-paing/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lwin-moe-paing.gitbook.io/typescript-baby-by-lwin-moe-paing/basic-typescript/ts-satisfies.md).

# TS - satisfies

<figure><img src="https://4062235122-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7tekcoDYDaKhlNreT5uK%2Fuploads%2FOtG9ECrhqpfPStOuLLXk%2FTypescript%20Satisfies%20Syntax.png?alt=media&amp;token=8038887f-1a85-41a0-afd9-b4c1ec703cad" alt=""><figcaption></figcaption></figure>

TypeScript မှာ satisfies operator က (၂) မျိုးလုပ်ဆောင်ပေးပါတယ် ။&#x20;

အရင်ဆုံး Target Type နဲ့ Type-Checking လုပ်ပါတယ် ။&#x20;

ပြီးတဲ့နောက် Type Safe ဖြစ်တဲ့ လုပ်ဆောင်ချက်ကို ထည့်ပေးပါတယ် ။

satisfies ရဲ့ Type-Checking လုပ်ဆောင်ပုံကို အရင်လေ့လာကြည့်ပါမယ် ။

<figure><img src="https://4062235122-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7tekcoDYDaKhlNreT5uK%2Fuploads%2Fai0NINE2cydnVvRVcW2X%2FTypescript%20Satisfies%20Type%20Checking.png?alt=media&amp;token=f58fd63b-d777-42ab-936c-0eeedb027b0e" alt=""><figcaption></figcaption></figure>

constant variable ဖြစ်တဲ့ user ထဲကို တန်ဖိုးတွေ assign လုပ်ထားပါမယ် ။&#x20;

သူ့ရဲ့ အနောက်မှာ satisfies operator `TargetType` ကို ကပ်ပြီးရေးထားတဲ့ ပုံစံဖြစ်ပါတယ် ။

ဘယ်ဘက်ပုံအရ  property `id` အတွက် တန်ဖိုး `"100"` ဖြစ်ပါတယ် ။ UserType ထဲမှာလည်း `id: string` ဖြစ်တာကြောင့် Type-Checking မှန်ပါတယ် ။ ဒုတိယ property `strOrNo: string | number` မှာ `strOrNo: "Lwin Moe Paing"` မို့လို့ Type-Checking မှန်ပါတယ် ။  ဒါကြောင့် ဘယ်ဘက် Code မှာ Type Checking Pass ဖြစ်သွားပါတယ် ။

ညာဘက် Code မှာ age ဆိုတဲ့ property က User Type ထဲမှာ မရှိပါဘူး ။ ဒါကြောင့် Type-Checking က မှားနေကြောင်း TypeScript Server က Error ပြသွားမှာပါ ။

satisfies operator ရဲ့ Type Safe ဖြစ်တဲ့ လုပ်ဆောင်ချက်ကို ထပ်လေ့လာသွားပါမယ် ။

<figure><img src="https://4062235122-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7tekcoDYDaKhlNreT5uK%2Fuploads%2FogRA43eXlz7kkA1XANqH%2FTypescript%20Satisfies%20Type%20Checking%20Satisfies%20VS%20Type.png?alt=media&amp;token=832dbddb-07b4-4fc1-9819-ecfd032431cb" alt=""><figcaption></figcaption></figure>

ဘယ်ဘက် ပုံက User Type ကို `satisfies` နဲ့ အသုံးပြုထားပါတယ် ။ သူက Type-Checking ပြီးသွားတဲ့ အခါ Type-Safe ဖြစ်အောင်ဆက်လုပ်ပါတယ် ။ နမူနာ Code ထဲမှာ user.strOrNo ဆိုတဲ့ property value က "Lwin Moe Paing" ပါဒါ့ကြောင့် string type ဆိုတာ သေချာသွားပြီလို့ ယူဆလိုက်ပါတယ် ။ user.strOrNo(.) ဆိုပြီး ခဏထားလိုက်တဲ့အခါ string method တွေကိုပဲ TypeScript Server က feedback တွေပေးသွားမှာပါ ။

ညာဘက်ပုံက User Type ကို annotation နည်းနဲ့ တန်ဖိုးကိုထည့်လိုက်ပါတယ် ။ ser.strOrNo(.) ဆိုပြီး ခဏထားလိုက်တဲ့အခါ type က string | number ဖြစ်နေတဲ့အတွက် string နဲ့ number မှာ ဘုံတူတဲ့ method တွေကိုပဲ feedback ပေးသွားမှာပါ ။

ဒါက ရိုးရိုး Type ကိုကြေငြာတာနဲ့ Satisfies ရဲ့ အသုံးပြုပုံ ကွာခြားချက်ပဲ ဖြစ်ပါတယ် ။

Code ရေးသားပုံ အပြည့်အစုံကို လေ့လာကြည့်နိုင်ပါတယ် ။

<figure><img src="https://4062235122-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7tekcoDYDaKhlNreT5uK%2Fuploads%2FZspMtSTeLyUyLD1p0g2o%2FTypescript%20Satisfies%20Type%20Code.png?alt=media&amp;token=f934e796-1b23-48c2-81a0-dae8de18d74d" alt=""><figcaption></figcaption></figure>
