[英]How can I infer an object property's value in TypeScript when using mapped types?
[英]TypeScript: Can I infer number index value type?
我創建了一個助手 function 來將編號鍵的 object 轉換為 Map:
interface IndexedObject {
[index: number]: unknown;
};
const objectToIndexedMap = (indexedObject: IndexedObject) => new Map(
Object.entries(indexedObject).map(
([ index, field ]) => [ Number(index), field ]
)
);
我用它將我從 API 獲得的對象轉換為更方便的 Map,我不再需要處理字符串鍵。 問題是返回的類型是Map<number, any>
,而我想在IndexedObject
中使用這些值的類型。
是否有可能獲得該類型並使我的 function 為 Map 值返回該特定類型?
因此,例如這會引發錯誤:
interface IndexedNumbers {
[index: number]: number;
}
const indexedNumbers: IndexedNumbers = api.numbers; // pseudocode
const map = objectToIndexedMap(indexedNumbers);
const foo = map.get(0)!.toUpperCase(); // This should throw an error
當然我知道我可以硬輸入它:
const map: Map<number, number> = objectToIndexedMap(indexedNumbers);
但我很樂意 TypeScript 為我做這件事。 可能嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.