![](/img/trans.png)
[英]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.