簡體   English   中英

TypeScript:我可以推斷數字索引值類型嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM