xxxxxxxxxx
enum Weekday {
MONDAY = 'mon',
TUESDAY = 'tue',
WEDNESDAY = 'wed'
}
type WeekdayType = `${Weekday}`;
xxxxxxxxxx
enum Provider {"google", "linkedin", "local"}
interface User {
authprovider: keyof typeof Provider
}
xxxxxxxxxx
//All of the following members are auto-incremented from that point on.
//In other words, Direction.Up has the value 1, Down has 2, Left has 3, and Right has 4.
enum Direction {
Up = 1, //If Up is not set to 1 will be 0 by default!
Down, //Down = 2
Left, //Left = 3
Right, //Right = 4
}
//String enum
enum Direction {
Up = "UP",
Down = "DOWN",
Left = "LEFT",
Right = "RIGHT",
}
xxxxxxxxxx
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
xxxxxxxxxx
var TrafficLight;
(function (TrafficLight) {
TrafficLight[TrafficLight["RED"] = 0] = "RED";
TrafficLight[TrafficLight["YELLOW"] = 1] = "YELLOW";
TrafficLight[TrafficLight["GREEN"] = 2] = "GREEN";
})(TrafficLight || (TrafficLight = {}));
xxxxxxxxxx
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",
}
xxxxxxxxxx
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
}
xxxxxxxxxx
export enum MESSAGE_TYPE {
INFO = 1,
SUCCESS = 2,
WARNING = 3,
ERROR = 4,
};
var type = 3;
if (type in MESSAGE_TYPE) {
}
xxxxxxxxxx
enum Number {
One,
Two
}
const numberOne: Number = "One" as Number;
const otherNumberOne: Number = Number.One;
const stringOne = Number[Number.One];