2016-03-31 4 views
2

Я использовал формат ниже, чтобы определить значение с помощью TypeScript, но я не уверен, что это «правильный» способ сделать это.Правильный способ определения значения с помощью TypeScript

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

Это прекрасно работает - я могу внедрить его в свои контроллеры и службы и использовать его в качестве общего хранилища для этих значений. Без машинописи, если я хотел объявить значение по умолчанию для одного из этих свойств объекта я мог бы сделать это:

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

Я попытался сделать то же самое с машинописью, но ни один из этих подходов ниже работал. Каждый раз, когда я пытаюсь получить доступ к объекту 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); 
} 

Кто-нибудь знает, как определить .value, используя машинопись таким образом, что позволяет устанавливать значения по умолчанию для свойств? Я знаю, что я мог бы загрузить это и установить значение по умолчанию, когда приложение запустится, но я действительно хотел бы выяснить, как это сделать, не прибегая к этому.

ответ

1

Это должно быть

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

GlobalInfo является класс (т.е. typeof GlobalInfo === 'function'), поэтому он должен быть создан для того, чтобы значение, чтобы быть объектом.

+0

Спасибо! Я знал, что мне не хватает деталей, но попробуйте найти в Google «угловое значение машинописного текста». :) – Lex

Смежные вопросы