enums
enums - помогает избавиться от магических цифр
export enum ResultCode {
Success = 0,
Error = 1,
CaptchaError = 10,
}
+ Нельзя их изменять (используется для чтения)
+ Используется для типов
Как можно покрывать enum и не использовать их?
- использовать as const - который тоже доступен только для чтения
- использовать типы в таком виде:
export const ResultCode2 = {
Success: 0,
Error: 1,
CaptchaError: 10
} as const
type ResultCode2Type = typeof ResultCode2
type ResultCode2Key = keyof typeof ResultCode2
// Success | Error | CaptchaError
type ResultCode = ResultCode2Type[ResultCode2Key]
// 0| 1 | 10
Общая запись:
type ResultCode = (typeof ResultCode2)[keyof typeof ResultCode2]