2017-07-17 28 views
1

例如設置無法智能感知包括類型腳本枚舉反向映射

enum Enum { 
    A = 2 
} 

const n = Enum.A 
const a = Enum[2] 

智能感知/完成的.A,但不是[2]

這是因爲conpletion不受trigguered [像它是爲了。?或者根本不工作?

+1

在我VSCode副本,'n'被推斷爲'Enum','a'被正確地推斷爲'string'。你使用什麼版本的打字稿? – Duncan

+0

啊哈!你向我展示了我思想的錯誤。在我看來,這些值是一組有限的值,而不是一個數字。因此我期待intellisense能夠提供這些值的列表並將任何不在該集合中的數字進行紅線。我希望在我輸入Enum的時候顯示它。[ –

+1

這是一個有趣的想法,我猜如果'a'的類型被推斷爲只是那些字符串而不是任何字符串,那麼它就會有意義。也許在未來版本的打字稿中。 – Duncan

回答

1

正常情況下,您無法使用[]運算符(在打字稿中)獲得智能感知。

但你總是可以用枚舉[Enum.A]將爲您提供相同的結果,你仍然可以得到Enum.A智能感知:利用打字稿2.4.1

enum Enum { 
    A = 2 
} 

console.log(Enum.A); // 2 
console.log(Enum[Enum.A]); // A 
+0

謝謝你。看到我對鄧肯對我的問題的評論 - 我一直在想它。 –