这是枚举:
enum PossibleValues {
A = 'A',
B = 'B',
C = 'C'
}
这是使用枚举作为其中一个字段的类型:
export interface MyInterface {
name: string;
age: number;
value: PossibleValues;
}
我假设在这种情况下,对于value
,它应该只接受enum(A、B或C(中的值,但我可以放其他值,它工作得很好。
有没有办法将可能的值限制为枚举中的值?
您可以提取PossibleValues的类型,然后获取该类型的所有密钥,如下所示:
export interface MyInterface {
name: string;
age: number;
value: keyof typeof PossibleValues;
}
现在值将只有3个可能的值A
、B
&C
我找到了另一种方法,如果没有太多可能的值,它看起来很好:
export interface MyInterface {
name: string;
age: number;
value:
| PossibleValues.A
| PossibleValues.B
| PossibleValues.C
}