Мне показалась полезной практика объединения перечислений с пространствами имен.пример:
enum Status : {
OK = 1,
NOT_OK = 2,
}
namespace Status {
function Color(status : Status) {
if(status == Status.OK)
return 'green';
else
return 'red';
}
}
Но я обнаружил, что tslint не любит их ... Какие другие методы я могу использовать вместо этого, чтобы получить такое же поведение?Я думал о замене пространства имен в классе статическими методами, но у него есть два недостатка:
1) Класс должен получить другое имя (например, StatusUtil) - хорошо, я могу жить с этим...
2) Класс StatusUtil (в отличие от пространства имен) не может быть вызван напрямую из HTML-файла при использовании Angular - это означает, что мне нужно написать дополнительные методы в каждом компоненте, что-то вроде этого:
getColor(status : Status) {
return StatusUtil(status);
}
Другой вариант, о котором я подумал, - это использование инжекции зависимости от угла вместо статического метода.Как вы думаете, будет лучшей практикой?