// 定义UserService类
class UserService {
getUserInfo() {
return "User information";
}
}
// 定义依赖注入装饰器
function injectUserService(target: any, propertyKey: string, descriptor: PropertyDescriptor) {
const originalMethod = descriptor.value;
descriptor.value = function(...args: any[]) {
const userService = new UserService();
return originalMethod.apply(this, [userService, ...args]);
};
return descriptor;
}
// 定义Controller类
class Controller {
@injectUserService
someMethod(userService: UserService) {
return userService.getUserInfo();
}
}
// 使用Controller类
const controller = new Controller();
console.log(controller.someMethod());