TypeScript में कंस्ट्रक्टर ओवरलोडिंग: सही तरीके से कैसे लागू करें?
सभी को नमस्ते! मैंने TypeScript सीखना शुरू किया है और कंस्ट्रक्टर ओवरलोडिंग की समस्या का सामना किया। अन्य भाषाओं (जैसे Java या C#) में मैं आदी हूँ कि अलग-अलग parameters के साथ कई कंस्ट्रक्टर घोषित किए जा सकते हैं। लेकिन TypeScript में यह उसी तरह काम नहीं करता।
मान लीजिए, मैं एक `User` क्लास बनाना चाहता हूँ जिसे या तो स्ट्रिंग (email) से या नाम और उम्र वाले object से initialize किया जा सके। मैंने ऐसा लिखने की कोशिश की:
```typescript
class User {
constructor(email: string) {
// ...
}
constructor(name: string, age: number) {
// ...
}
}
```
लेकिन TypeScript त्रुटि देता है: "Duplicate function implementation"। मैं समझता हूँ कि JavaScript में वास्तविक ओवरलोडिंग नहीं है, लेकिन फिर क्या करें?
मुझे चाहिए कि क्लास को विभिन्न तरीकों से बनाया जा सके:
1. `new User("john@example.com")` — केवल email
2. `new User("John", 25)` — नाम और उम्र
3. `new User()` — खाली object (डिफ़ॉल्ट मान)
TypeScript में इसे सही तरीके से कैसे लागू करें? मैंने union types, rest parameters के बारे में सुना है।