亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

泛型類型獲取枚舉鍵作為打字稿中的聯合字符串?

泛型類型獲取枚舉鍵作為打字稿中的聯合字符串?

蝴蝶刀刀 2019-11-02 14:28:22
考慮以下打字稿枚舉:enum MyEnum { A, B, C };如果我想要另一個類型是該枚舉的鍵的聯合字符串,則可以執行以下操作:type MyEnumKeysAsStrings = keyof typeof MyEnum;  // "A" | "B" | "C"這是非常有用的。現在,我想創建一個通用類型,以這種方式對枚舉進行通用操作,這樣我可以改為:type MyEnumKeysAsStrings = AnyEnumKeysAsStrings<MyEnum>;我想正確的語法是:type AnyEnumKeysAsStrings<TEnum> = keyof typeof TEnum; // TS Error: 'TEnum' only refers to a type, but is being used as a value here.但這會產生編譯錯誤:“'TEnum'僅引用類型,但在此處被用作值?!边@是意外和悲傷的。我可以通過以下方式通過使用泛型聲明的右側刪除typeof并將其添加到特定類型的聲明中的type參數中來解決此問題:type AnyEnumAsUntypedKeys<TEnum> = keyof TEnum;type MyEnumKeysAsStrings = AnyEnumAsUntypedKeys<typeof MyEnum>; // works, but not kind to consumer.  Ick.不過,我不喜歡這種解決方法,因為這意味著使用者必須記住在通用類型上仔細地指定typeof。有什么語法可以讓我指定我最初想要的通用類型,以便對消費者友好?
查看完整描述

1 回答

  • 1 回答
  • 0 關注
  • 583 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號