У меня вопрос к вопросу, который я не понимаю в механизме машинописи: почему в следующем коде ComposerA верен, а ComposerB нет?
type Ctor<T = {}> = new (...args: any[]) => T;
function ComposerA<T extends Ctor>(Target: T) {
return class extends Target {
...
}
}
function ComposerB<T extends Ctor>(Target: T) {
return class implements Target {
...
}
}
В ComposerB я получаю ошибку -> «Цель» относится к значению, но здесь используется как тип.
Я думаю, что есть концепция, которую я не понял. Можно ли реализовать функцию, которая берет объект и реализует его. Мне нужны реализации, а не расширения, этот пример является упрощением моего исходного кода, и у меня уже есть расширение другого класса.