[英]How can I make a complex interface with string indexes with Typescript?
我如何制作一个独特但允许我索引它的值的界面:
export const convertKeyNames = (Doc: MyDoc) => {
return Object.keys(Doc).reduce((doc, key) => {
return {
[key[0].toLowerCase() + key.slice(1)]: Doc[key],
};
}, {});
};
对于这句话,我收到了一个打字稿错误:
“字符串”类型的表达式不能用于索引“MyDoc”类型
我不想将MyDoc
转换为带有字符串索引的对象的通用接口,因为它正在被进一步使用。
我想保留MyDoc
界面。
另外作为旁注,这对我来说毫无意义。 为什么我不能使用对象自己的键来索引它?
听起来您只是在尝试转换输入对象的键。 考虑通过映射对象的条目来创建新对象:
export const convertKeyNames = (Doc: MyDoc) => (
Object.fromEntries(
Object.entries(Doc).map(
([key, val]) => [key[0].toLowerCase() + key.slice(1), val]
)
)
);
为什么我不能使用对象自己的键来索引它?
出于某种奇怪的原因, Object.keys
返回Array<string>
,而不是Array<keyof param>
。 最简单的替代方法是使用Object.entries
来一次提取键和值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.