所以,我有这个'常量'工厂,只是提供了一些常数在模板,模型和控制器中使用。在我的角度控制器中,我通常只做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窗口编码。很酷,这是有道理的。如果我想将其外部化到它自己的类中,那么我只需将类常量(我会将其大写)放在一个文件中,然后让它引用项目根目录,例如app.ts并且它可以工作,或者我应该明确地导入它从我的UserModel?我想这是一个完全不同的问题.... – FlavorScape