टाइपस्क्रिप्ट में 'संतुष्ट'-ऑपरेटर

सत्यापित करें कि अभिव्यक्ति का प्रकार उस अभिव्यक्ति के परिणामी प्रकार को बदले बिना किसी प्रकार से मेल खाता है

टाइपस्क्रिप्ट 4.9 संतुष्ट करता है

संस्करण 4.9 के साथ, टाइपस्क्रिप्ट एक नया ऑपरेटर पेश करता है जिसे "संतुष्ट" -ऑपरेटर कहा जाता है। इसका उद्देश्य गैर-समरूप प्रकार के सेटों को समग्र प्रकार को संतुष्ट करने की अनुमति देकर अधिक लचीला बनाना है।

रिकॉर्ड के साथ प्रकार की त्रुटि को ठीक करें<>

इस नए ऑपरेटर को प्रदर्शित करने के लिए सबसे अच्छा उदाहरण "रिकॉर्ड"-प्रकार का उपयोग करता है, जहां मानों के प्रकार भिन्न हो सकते हैं।

type Keys = "alpha" | "beta" | "gamma";

const variants = {
  alpha: 0,
  beta: 1,
  gamma: "three"
} satisfies Record<Keys, string | number>;

// With the new 'satisfies'-operator,
// the types for each of the properties
// is correctly inferred.
const otherBeta = variants.beta + 10;
const gammeUppercase = variants.gamma.toUpperCase();

जैसा कि आप देख सकते हैं, नया कोड दी गई कुंजी के लिए मान्य प्रकार का सही अनुमान लगाने की अनुमति देता है। टाइपस्क्रिप्ट 4.9.0 से पहले यह संभव नहीं होगा। कंपाइलर शिकायत करेगा कि मान टाइप स्ट्रिंग या नंबर का हो सकता है, जबकि अब कंपाइलर विशिष्ट प्रकार का सही अनुमान लगाता है।

संपत्ति का नाम प्रतिबंध

हम कंपाइलर को निर्देश देने के लिए नए ऑपरेटर का भी उपयोग कर सकते हैं कि एक सेट के लिए केवल कुछ दी गई कुंजियों को शामिल करना ठीक है, लेकिन किसी अन्य को स्वीकार नहीं करना है।

type Keys = "alpha" | "beta" | "gamma";

const variants = {
    alpha: "value",
    beta: 0,
    // The compiler will show an error,
    // as 'delta' is not part of the keys.
    delta: new Date()
} satisfies Partial<Record<Keys, unknown>>;

और ज्यादा उदाहरण

गहन विवरण के साथ उदाहरणों की पूरी सूची के लिए, मैं इस सुविधा के मूल मुद्दे को जीथब पर अत्यधिक अनुशंसा करता हूं, जहां लेखक कई उपयोग मामलों का वर्णन करता है (परिशिष्ट में भी लिंक)।

सुझाव

संबंधित

परिशिष्ट

भाषाएँ