TypeScript में ऑब्जेक्ट प्रॉपर्टी तक पहुँचते समय ! (विस्मयादिबोधक चिह्न) ऑपरेटर का क्या अर्थ है?
सभी को नमस्ते! मैंने हाल ही में TypeScript सीखना शुरू किया है और मुझे एक ऐसी संरचना मिली जो मेरे लिए समझ से बाहर है। सहकर्मी के कोड में मैंने वेरिएबल के बाद या ऑब्जेक्ट प्रॉपर्टी तक पहुँचने से पहले विस्मयादिबोधक चिह्न का उपयोग देखा। उदाहरण के लिए:
```typescript
const userName: string | null = getUserName();
const length = userName!.length;
```
या यह विकल्प:
```typescript
interface User {
name?: string;
email?: string;
}
function getUserEmail(user: User): string {
return user.email!;
}
```
मैं समझता हूँ कि `?` का अर्थ वैकल्पिक मान है (यह undefined या null हो सकता है)। लेकिन `!` क्या करता है? क्या यह कोई जबरदस्ती एक्सेस ऑपरेटर है? क्या यह रनटाइम के दौरान त्रुटि उत्पन्न नहीं करेगा यदि मान वास्तव में null या undefined हो?
मैंने गूगल करने की कोशिश की, लेकिन हर जगह "non-null assertion operator" के बारे में लिखा है। सच कहूँ तो, यह डरावना लगता है। क्या आप सरल शब्दों में समझा सकते हैं कि यह कैसे काम करता है और इसका उपयोग कब सुरक्षित है?
आपकी मदद के लिए पहले से धन्यवाद!