类使用typescript装饰器初始化

时间:2016-01-14 05:42:04

标签: typescript

我希望在类上面有特定的装饰器时自动初始化类,例如:

@apiController
export class usersControllers extends lib.baseClasses.apiControllerBase().apiController {
    @lib.decorators.routesRegister().register({ "url": "/login","isLoginUrl":true})
    public postLoginUser($data) {
        let userDetails = {
            name: 'pranay dutta',
            userType: '1', // must
            age: '26',
            tokenExpiry:5000000 // must
        };

        setTimeout(() => {
            this.ok(userDetails);
        }, 100);

        return this.promise;
    }
}

在上面的示例中,当我使用@apiController装饰器时,它应该自动为我启动课程,请帮我解决问题

1 个答案:

答案 0 :(得分:1)

我会做像

这样的事情
function apiController(target: any) 
{
    let obj = new target.constructor();
}

更新。 为了强制装饰者开火,我使用以下技巧。在同一个模块中添加虚函数,如下所示:

export function Seed() { } 

然后只需在初始化例程或系统中调用它。这将强制该模块中的所有装饰器触发。