繁体   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