本文简绍几种常用的ts枚举类型的操作技巧:
enum Status {
SUCCESS = 'success',
DANGER = 'danger',
WARNING = 'warning',
}
1. 获取枚举的 key 类型
type StatusKey = keyof typeof Status;
// 'SUCCESS' | 'DANGER' | 'WARNING'
const keyArr: StatusKey[] = ['SUCCESS', 'DANGER']; // passed
2. 获取枚举的 value 类型
type StatusVal = `${Status}`;
// 'success' | 'danger' | 'warning'
const valArr: StatusVal[] = ['success', 'danger', 'warning']; // passed
3. 合并枚举类型
enum Wait {
WAITING = 'waiting',
}
const merge = { ...Status, ...Wait };
type MergeStatus = typeof merge;
const s1 = MergeStatus.WAITING; // warning
const s2 = MergeStatus.SUCCESS; // success
const s3 = MergeStatus.DANGER; // danger
const s4 = MergeStatus.WARNING; // warning
4. 使用 Exclude 剔除枚举中的值
type ErrStatus = Exclude<Status, Status.SUCCESS>;
let a: ErrStatus = Status.DANGER; // passed
a = Status.WARNING; // passed
a = Status.SUCCESS; // error
希望可以帮到大家,谢谢支持。