В настоящее время я внедряю инжектор зависимостей для использования в проекте VUE js.
Я создал декоратор Inject и хочу получить доступ к типу свойства, у меня это работало вчера, но что-то случилось, и я полностью потерян.Я выполнил консоль JSON.stringify (target), и я получил пустой объект, что означает, что мой декоратор запускается до создания класса.
Я использую метаданные отражений для получения типа, но он разрешается равным нулю, поскольку целью является пустой объект.Эту проблему можно решить, передав тип в качестве параметра декоратора, однако это решение не так элегантно, как хотелось бы.
Есть ли способ заставить декоратор ждать, пока класс не будет созданили там где-то я просто ошибаюсь?Ниже приведен код декоратора:
export const Inject = (): any => {
return (target: any, key: string): any => {
if (delete target[key]) {
Object.defineProperty(target, key, {
get: () => {
const type = Reflect.getMetadata('design:type', target, key);
return Injector.resolve(type);
},
});
}
};
};
Ниже приведена аннотация декоратора:
@Inject()
public testService: TestService;
Заранее спасибо!