Avatar ·

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

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