Avatar ·

TypeScript में ! (विस्मयादिबोधक चिह्न) ऑपरेटर: प्रॉपर्टी एक्सेस करते समय यह क्या करता है?

सभी को नमस्ते! मैंने हाल ही में TypeScript सीखना शुरू किया है और एक अजीब सिंटैक्स पर ठोकर खाई है जिसमें विस्मयादिबोधक चिह्न है। मुझे ऐसा कोड मिला: ```typescript let name: string | null = getUserName(); console.log(name!.toUpperCase()); ``` मैं समझता हूँ कि `name` `string` या `null` हो सकता है। लेकिन `name` के बाद यह `!` क्या करता है? इसके बिना TypeScript त्रुटि देता है: "Object is possibly 'null'"। और इसके साथ — सब कुछ काम करता है। क्या यह कोई ऑपरेटर है? क्या यह टाइप बदलता है? या यह कंपाइलर को "चुप रहने" के लिए कहने का एक तरीका है? इसका उपयोग कब उचित है, और कब यह खतरनाक है? मैंने optional chaining (`?.`) के बारे में पढ़ा है, लेकिन यहाँ बिल्कुल अलग सिंटैक्स है। क्या आप सरल शब्दों में समझा सकते हैं कि ऑब्जेक्ट के सदस्य को एक्सेस करते समय `!` (exclamation mark / bang) क्या करता है? और यह सामान्य टाइप assertion (`as`) से कैसे अलग है? धन्यवाद! <<>>

TypeScript में ! (non-null assertion) ऑपरेटर क्या है?

यह non-null assertion ऑपरेटर है। यह कहता है