Avatar ·

TypeScript: एक इंटरफ़ेस कैसे बनाएं जिसमें दो गुणों में से एक अनिवार्य हो?

```html सभी को नमस्ते! मैं ऑर्डर प्रोसेसिंग के लिए TypeScript में एक एप्लिकेशन लिख रहा हूँ। मेरे पास उपयोगकर्ता के लिए एक इंटरफ़ेस है, जो या तो पंजीकृत हो सकता है (और तब उसके पास `userId` होता है) या अतिथि हो सकता है (और तब उसके पास `guestToken` होता है)। लेकिन सबसे महत्वपूर्ण बात यह है कि उपयोगकर्ता के पास इन दो फ़ील्ड्स में से ठीक एक होना चाहिए, न कि दोनों एक साथ और न ही कोई नहीं। यहाँ मैंने इसे करने का प्रयास किया: ```typescript interface User { name: string; email: string; userId?: number; guestToken?: string; } ``` लेकिन समस्या यह है कि TypeScript एक ऐसा ऑब्जेक्ट बनाने की अनुमति देता है जहाँ दोनों फ़ील्ड्स अनुपस्थित हों, या दोनों एक साथ मौजूद हों। उदाहरण के लिए: ```typescript const user1: User = { name: "Анна", email: "a@mail.ru" }; // न तो userId है और न ही guestToken — कोई त्रुटि नहीं दिखाई गई const user2: User = { name: "Иван", email: "ivan@mail.ru", userId: 123, guestToken: "abc" }; // दोनों मौजूद हैं — कोई त्रुटि नहीं ``` ```