Appearance
Database
Enums
When there is a set of pre-populated values that there is a need to use in the code, enums -- or plain objects in javascript -- should be used instead of either arrays or just plain strings.
The enum name and keys should be in UPPER_SNAKE_CASE
The values when applicable should be also in UPPER_SNAKE_CASE
and the same as the keys.
This helps developers
- to have autocompletion in the code editor when using the enum.
- to identify that a value belongs to an enum from the payload of a request, down to the value in a database column. (when values of an enum are
UPPER_SNAKE_CASE
)
example javascript
javascript
const DATASOURCE_TARGET_MODULE = {
PRODUCT: "PRODUCT",
CORPORATE: "CORPORATE",
};
const DATASOURCE_TARGET_MODULE = {
PRODUCT: "PRODUCT",
CORPORATE: "CORPORATE",
};
example typescript
typescript
enum DATASOURCE_TARGET_MODULE {
PRODUCT = "PRODUCT",
CORPORATE = "CORPORATE",
}
enum DATASOURCE_TARGET_MODULE {
PRODUCT = "PRODUCT",
CORPORATE = "CORPORATE",
}
The values of an enum in an array form can be retrieved by using Object.values(ENUM_NAME)
Warning When using enums in typescript never leave the values empty. This would let typescript infer the values as auto increment numbers starting from 0
. This is a potential for many bugs.