В TypeScript для объявления наследования классом от другого класса используется ключевое слово "extends". При этом, чтобы TypeScript корректно определил тип класса и учитывал его наследование, необходимо явно указать тип класса через обобщение (generic), используя квадратные скобки.
Вот пример объявления класса с явным указанием типа и наследованием:
class Parent { public name: string; constructor(name: string) { this.name = name; } public sayHello(): string { return `Hello, my name is ${this.name}.`; } } class Child extends Parent { public age: number; constructor(name: string, age: number) { super(name); this.age = age; } public sayAge(): string { return `I am ${this.age} years old.`; } }
В данном примере класс "Child" наследуется от класса "Parent" с помощью ключевого слова "extends". Таким образом, экземпляры класса "Child" будут иметь свойства и методы как класса "Parent", а также свои дополнительные свойства и методы.
Объявление типа класса с учетом наследования выглядит следующим образом:
class Child<T> extends Parent { ... }
Здесь "T" - это обобщение (generic), используемое для явного указания типа класса. При этом, класс "Child" продолжает наследовать свойства и методы класса "Parent".
Теперь TypeScript будет понимать, что экземпляр класса "Child" имеет как свойства и методы класса "Parent", так и свои собственные свойства и методы. Это позволяет проводить статическую типизацию и обеспечивает безопасность и надежность при работе с такими классами.