type Animal = { name: string } // imported from 3rd party module
const cat: Animal = {
name: 'Cat' as const,
}
const dog = {
name: 'Dog' as const
}
type CatName = typeof cat.name // = string, not 'Cat' !!!
type DogName = typeof dog.name // = 'Dog'
在上面的代碼中,如何獲得文字型別CatName = 'Cat'(如DogName = 'Dog')?
注意:我無法更改型別的定義,Animal因為它是第 3 方代碼,我想保留cat要鍵入的值。
uj5u.com熱心網友回復:
我想保持價值 cat 被輸入
如果您明確鍵入cat asAnimal,則不,您無法'Cat'退出。您可以更精確地鍵入它const cat: { name: 'Cat' }(它是 的子型別Animal),或者即使const cat: Animal & { name: 'Cat' }您想明確地鍵入它也是一個Animal.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/482437.html
標籤:打字稿
