使用TypeScript

时间:2016-03-31 16:08:09

标签: angularjs typescript

我使用下面的格式来使用TypeScript定义一个值,但是我不确定它是否是#34;正确的"这样做的方式。

module app.global {
    "use strict";
    export class GlobalInfo {
        userId: string;
        environment: string;
    }
    angular.module("bulkAddMemos")
        .value("GlobalInfo", GlobalInfo);
}

这很好用 - 我可以将它注入我的控制器和服务中,并将其用作这些值的共享存储。没有TypeScript,如果我想为这些对象属性之一声明一个默认值,我可以这样做:

angular.module("bulkAddMemos")
    .value("GlobalInfo", { userId: "", environment: "TEST" });

我尝试使用TypeScript做同样的事情,但下面的方法都没有奏效。每当我尝试访问environment属性时,它都是undefined

尝试1

module app.global {
    "use strict";
    export class GlobalInfo {
        userId: string;
        environment: "TEST";
    }
    angular.module("bulkAddMemos")
        .value("GlobalInfo", GlobalInfo);
}

尝试2

module app.global {
    "use strict";
    export class GlobalInfo {
        userId: string;
        environment: string;
        constructor(){
            this.environment = "TEST";
        }
    }
    angular.module("bulkAddMemos")
        .value("GlobalInfo", GlobalInfo);
}

是否有人知道如何使用TypeScript定义.value以允许您为属性设置默认值?我知道我可以启动它并在应用程序启动时设置默认值,但我真的想知道如何在不诉诸于此的情况下执行此操作。

1 个答案:

答案 0 :(得分:1)

应该是

[

module app.global { "use strict"; export class GlobalInfo { userId: string; environment: "TEST"; } angular.module("bulkAddMemos") .value("GlobalInfo", new GlobalInfo); } 是类(即GlobalInfo),因此应该将其实例化以使值成为对象。