是否有可能获得es6类构造函数参数列表?

时间:2017-09-12 15:34:59

标签: javascript ecmascript-6

我使用es6类在我的应用程序(Angularjs - 1.6.3)中编写服务和控制器。

我想简化一些代码,但不知道是否可能以及如何获取es6类构造函数参数列表。

我需要简化以防止重复的部分示例:

class MyService {

    constructor (
        $q,
        $translate,
    ) {

        this.$q = $q;
        this.$translate = $translate;
    }
}

angular
    .module('app')
    .service('myService', MyService);

有没有办法自动将依赖项添加到给定的上下文?

知道在angular2中有装饰器有助于不复制依赖关系以在当前范围内添加它们(或者它们以任何其他方式执行此操作)

1 个答案:

答案 0 :(得分:1)

您可以将Object.assign与解构结合使用:

class Service {
    constructor($q, $translate) {
        Object.assign(this, { $q, $translate });
    }
}

这相当于您编写的代码。