用 enum + namespace
的声明方式可以为枚举添加静态方法,示例如下:
enum WeekDay {
Monday,//不写值,则值默认为从0开始的数字
Tuseday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
namespace WeekDay {
export function isBusinessDay(day:WeekDay) {
switch(day) {
case WeekDay.Saturday:
case WeekDay.Sunday:
return false;
default:
return true
}
}
}
const mon = WeekDay.Monday;
const sat = WeekDay.Saturday;
const thu = 3
console.log(WeekDay.isBusinessDay(mon));
// true
console.log(WeekDay.isBusinessDay(sat));
// false
console.log(WeekDay.isBusinessDay(thu));
//true