Я пытаюсь открыть шаблон для объединения нескольких интерфейсов в один абстрактный класс. В настоящее время я могу объединить несколько интерфейсов через "инструменты", но интерфейс не может объявить конструктор. Когда я должен ввести конструктор, я вынужден использовать абстрактный класс. Когда я использую абстрактный класс, я должен повторно объявить весь составной интерфейс! Неужели я что-то упустил?
interface ILayerInfo {
a: string;
}
interface ILayerStatic {
b(): string;
}
class Layer implements ILayerInfo, ILayerStatic {
constructor(info: ILayerInfo);
a: string;
b(): string;
}
ОТВЕТ: используйте 'new':
interface Layer extends ILayerInfo, ILayerStatic {
new(info: ILayerInfo);
}
// usage: new Layer({ a: "" });