Skip to content
GitHub

Satisfies Keyword

Type သတ်မှတ်ရာမှာ အသေးစိတ် အချက်အလက်တွေ ပျောက်ဆုံးသွားခြင်း

Section titled “Type သတ်မှတ်ရာမှာ အသေးစိတ် အချက်အလက်တွေ ပျောက်ဆုံးသွားခြင်း”

Typed object တစ်ခု သတ်မှတ်ခြင်း

Section titled “Typed object တစ်ခု သတ်မှတ်ခြင်း”

ကျွန်တော်တို့ Application တွေ ရေးတဲ့အခါ Objects တွေကို အများကြီး ဖန်တီး အသုံးပြုရလေ့ ရှိပါတယ်။ အဲ့ဒီ Objects တွေဟာ ကျွန်တော်တို့ ကြိုတင် သတ်မှတ်ထားတဲ့ ပုံစံ (General Structure) နဲ့ ကိုက်ညီမှု ရှိဖို့ အရေးကြီးပါတယ်။ ဥပမာအားဖြင့် Application ရဲ့ ဆက်တင်တွေ (Settings) သိမ်းထားမယ့် Configuration Object မျိုးပေါ့။

config.ts
// ဒါက AppConfig ဆိုတဲ့ Interface တစ်ခုပါ။
// အက်ပလီကေးရှင်းရဲ့ Configuration Object တွေမှာ ဘာတွေ ပါရမယ်ဆိုတာ သတ်မှတ်ပေးထားတာပါ။
interface AppConfig {
env: "development" | "production" | "test"; // env က ဒီ String ၃ ခုထဲက တစ်ခုခု အတိအကျ ဖြစ်ရမယ်။
port: number; // port က number အမျိုးအစား ဖြစ်ရမယ်။
featureFlags: Record<string, boolean>; // featureFlags က Key က string၊ Value က boolean ဖြစ်တဲ့ Object ဖြစ်ရမယ်။
}

အခု အဲ့ဒီ AppConfig Interface ရဲ့ စည်းမျဉ်းတွေနဲ့ ကိုက်ညီတဲ့ တကယ့် Configuration Object အစစ်တစ်ခုကို ဖန်တီးကြည့်ရအောင်။

config.ts
const myAppConfig = {
env: "development", // အတိအကျ သတ်မှတ်ထားတဲ့ "development"
port: 3000,
featureFlags: {
darkMode: true, // Key အတိအကျ: "darkMode"
newOnboarding: false // Key အတိအကျ: "newOnboarding"
}
};
// ဒီအချိန်မှာ TypeScript က myAppConfig ရဲ့ Type ကို အတတ်နိုင်ဆုံး အတိကျဆုံး (Most specific) အနေနဲ့ အလိုအလျောက် မှန်းဆ (Infer) ပေးထားပါတယ်:
// typeof myAppConfig ရဲ့ ပုံစံက အောက်ပါအတိုင်း ဖြစ်နေပါမယ်:
// {
// env: "development"; // "development" ဆိုတဲ့ String အတိအကျ
// port: number;
// featureFlags: {
// darkMode: boolean; // darkMode ဆိုတဲ့ Key ပါကြောင်း အတိအကျ သိတယ်။
// newOnboarding: boolean; // newOnboarding ဆိုတဲ့ Key ပါကြောင်း အတိအကျ သိတယ်။
// };
// }