पाठ 16 / 26

टाइपस्क्रिप्ट में क्लासेस

टाइप्ड प्रॉपर्टीज़, कंस्ट्रक्टर, और वह इंटरफ़ेस जिसे क्लास को संतुष्ट करना है।

एक टाइप्ड क्लास

हर प्रॉपर्टी का टाइप घोषित करें, फिर कंस्ट्रक्टर में मान असाइन करें।

class Dog {
  name: string;
  age: number;

  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }

  bark(): string {
    return `${this.name} says Woof!`;
  }
}

const rex = new Dog("Rex", 3);

इंटरफ़ेस लागू करना

implements, TS से जँचवाता है कि क्लास वाक़ई वह सब देती है जो इंटरफ़ेस वादा करता है।

interface Speaker {
  speak(): string;
}

class Cat implements Speaker {
  speak(): string {
    return "Meow!";
  }
}
// If speak() were missing:
// Error: Class 'Cat' incorrectly implements interface 'Speaker'.

क्लासेस भी स्ट्रक्चरल हैं

किसी इंटरफ़ेस को संतुष्ट करने के लिए क्लास को implements की ज़रूरत नहीं — अगर उसका आकार मेल खाता है, TS इसे वहाँ स्वीकार करता है जहाँ वह इंटरफ़ेस अपेक्षित है।