enum Weekday {
MONDAY = 'mon',
TUESDAY = 'tue',
WEDNESDAY = 'wed'
}
type WeekdayType = `${Weekday}`;
enum Sides {LEFT, RIGHT};
Sides.LEFT; // 0
Sides.RIGHT; // 1
const typeFromEnum: Sides.LEFT = Sides.LEFT; // Enums become types!
console.log(Sides); // { '0': 'LEFT', '1': 'RIGHT', LEFT: 0, RIGHT: 1 }
type leftOrRight = keyof typeof Sides; // 'LEFT' | 'RIGHT'
let sideName: string = Sides[0]; // 'LEFT' reverse mapping
enum EnumWithString {
X = "XX",
Y = "YY",
};
console.log(EnumWithString); // { X: 'XX', Y: 'YY' } no reverse mapping
enum Direction {
Up = 1,
Down,
Left,
Right,
}
We’ll first start off with numeric enums, which are probably more familiar if you’re coming from other languages. An enum can be defined using the enum keyword.
If we wanted, we could leave off the initializers entirely:
enum Direction {
Up,
Down,
Left,
Right,
}
enum Direction {
Up = "UP",
Down = "DOWN",
Left = "LEFT",
Right = "RIGHT",
}
enum EMoney {
gopay = 'gopay',
dana = 'dana',
ovo = 'ovo'
}
enum Bank {
bca = 'bca',
mandiri = 'mandiri',
bri = 'bri'
}
interface OnlineShop<T> {
payment: T
}
const payment: OnlineShop<Bank> = {
payment: Bank.bca
}