// String enum
enum Direction {
Up = "UP",
Down = "DOWN",
Left = "LEFT",
Right = "RIGHT",
}
// Numeric enums
enum Direction {
Up = 1,
Down,
Left,
Right,
}
enum Direction {
Up,
Down,
Left,
Right,
}
enum UserResponse {
No = 0,
Yes = 1,
}
function respond(recipient: string, message: UserResponse): void {
console.log(recipient, message); // "Princess Caroline", 1
}
respond("Princess Caroline", UserResponse.Yes);
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 vscode {
good,bad,medium
}
console.log(vscode.bad)
enum Direction {
Up = 1,
Down,
Left,
Right,
}
Try
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
}