[英]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.