我有這個哈希:
const COLOR_TO_VALUE: {[key: string]: number} = {
black: 0,
brown: 1,
...
}
如果我想參考函式中的鍵,例如:
export function decodedResistorValue(colorBands: Color[]){
...
}
有什么區別:
type Color = typeof COLOR_TO_VALUE[string];
和
type Color = keyof typeof COLOR_TO_VALUE;
uj5u.com熱心網友回復:
第一種語法將獲取鍵所在的所有值的型別string。在這種情況下,這是number.
第二個將獲取型別的所有鍵的型別COLOR_TO_VALUE。您可能期望它是string,但是由于物件在 JS 中的作業方式,您可以使用字串索引或數字 1 來訪問它,型別實際上是number | string.
但我認為你真正想要的是最終得到這種型別black | brown。您可以通過讓 TS 推斷型別并使用keyof typeof. 像這樣的東西:
const COLOR_TO_VALUE = {
black: "0",
brown: "1",
}
type Color = keyof typeof COLOR_TO_VALUE;
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/481455.html
標籤:打字稿
上一篇:打字稿部分鍵映射
下一篇:打字稿中的條件重疊
