[英]Using enum value as a type in Interface in typescript
下面是在接口中有效使用枚举吗?
declare enum MyEnumType {
Member1,
Member2,
}
interface Foo {
prop1: MyEnumType, // this is valid
prop2: MyEnumType.Member1 // how about this? If not, why?
}
如果您在沙箱中运行此代码,您将收到一个错误:
Enum type 'MyEnumType' has members with initializers that are not literals.
仅当您declare
枚举时它才无效。 在这种情况下,你告诉 TS 枚举存在,但你没有告诉它它的值是什么,因为这个枚举的定义可能是这样的:
enum MyEnumType {
Member1 = 8,
Member2 = 'RaNdOmWhAtEvEr'
}
这意味着MyEnumType.Member2
不明确。 它会起作用,如果你
declare
关键字)。 现在 TypeScript 完全控制了枚举,它知道它将为其键分配值0
和1
declare enum MyEnumType {
Member1 = 0,
Member2 = 1
}
现在 TS 知道从枚举中期望什么,并且能够将其键作为类型进行操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.