Итак, у меня есть эта фабрика «константы», которая просто предоставляет некоторые константы для использования в шаблонах, моделях и контроллерах. В моих угловых контроллерах я обычно делаю constants.roles.ADMIN
нормально. Как это перевести на машинопись?Как преобразовать этот угловой завод в машинопись?
(function() {
'use strict';
angular.module('App').factory('constants', function(){
return {
roles: {
ADMIN:'admin',
CLIENT:'client',
USER:'user'
},
loginStatus: {
LOGGED_OUT: 'loggedOut',
LOGGED_IN: 'loggedIn',
LOGGING_IN: 'loggingIn',
},
};
});
}());
Я хочу, чтобы что-то подобное выглядело. Вот моя попытка, но это кажется неправильным. На данный момент, я просто положить его в том же файле TS, как моя модель для тестирования:
class constants {
static roles:object {
ADMIN:string = 'admin',
CLIENT:string = 'client',
USER:string = 'user'
},
loginStatus: {
LOGGED_OUT:string = 'loggedOut',
LOGGED_IN:string = 'loggedIn',
LOGGING_IN:string = 'loggingIn',
},
}
class UserModel {
//obviously this is just an example
activeRole:string;
isAdmin =() => {
return this.activeRole == constants.roles.ADMIN;
}
}
, но я не могу перейти к определению и мой подсветка синтаксиса показывает мои статические классы как неиспользуемый декларации.
Я всего лишь TS noob, так что, возможно, я подхожу к этому неправильно. Как мне перевести с моей фабрики на объект ts?
ах, да, я просто кодировал прямо в окне SO. Круто, что имеет смысл. Если я хочу, чтобы экстернализировать это в свой собственный класс, я бы просто поместил константу класса (я заглавю ее) в файл и имею ссылку на проект root, скажем, app.ts, и он работает, или я должен явно импортировать его из моего UserModel? Наверное, это совсем другой вопрос ... – FlavorScape