#typescript #decorator
#typescript #декоратор
Вопрос:
Я пытаюсь написать декоратор класса, который принудительно использует целевой класс для расширения другого класса.
Гипотетический пример:
@Component
class MyComponent extends WebComponent
{
}
Я хочу @Component
, чтобы декоратор принудительно расширял целевой класс WebComponent
.
Я много чего перепробовал, но, похоже, ничего не работает. Я думаю, это было бы что-то такое простое, как это:
export function Component(options: ComponentConstructorOptions)
{
return <T extends WebComponent>(target: T): T => {
console.log(target);
return target;
};
}
Итак, если MyComponent
НЕ расширяется WebComponent
, я хочу, чтобы компиляция typescript завершилась неудачей.
Любая помощь приветствуется!
Ответ №1:
Хорошо, я нашел исправление случайно. Это оказалось так же просто, как использовать typeof
в сигнатуре функции декоратора:
return (target: typeof WebComponent) => {
console.log(target);
};