正確にはEnumにメソッドがはえたように見せる、だけど。。 以下のように、Enumと同じ名前のnamespaceを定義し、そこにメソッドを定義することで Enumにメソッドを定義したように見せられる。
enum Weekday { Monday, Tuesday, 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 sun = Weekday.Sunday; console.log(Weekday.isBusinessDay(mon)); // true console.log(Weekday.isBusinessDay(sun)); // false
これは思いつかなかった。てかTSのEnumが貧弱すぎて困る。。このぐらい元々出来て欲しい。