gpt4 book ai didi

typescript :类型 '{}' 没有索引签名

转载 作者:搜寻专家 更新时间:2023-10-30 21:27:35 25 4
gpt4 key购买 nike

我想编写一个函数来用一系列值替换模板中的字段。字符串模板中的字段具有 {keyname} 形式。代码如下:

function replaceAll(template:string, values:object) {
Object.keys(values).map((e) => {
const key = new RegExp("{" + e + "}", "g");
template = template.replace(key, values[e]); //xxx
});
return template;
}

let result = replaceAll("the {q} brown {f}...", { q: "quick", f: "fox"});

不幸的是,这段代码无法编译。在 xxx 的 values[e] 处,它给出:

Element implicitly has an 'any' type because type '{}' has no index signature.

(parameter) values: object

错误消息是什么意思,我该如何解决?

最佳答案

您可以使用以下类型:{ [key: string]: string },自然将 string 更改为可以分别作为键和值传入的任何内容.

您收到错误消息是因为当您访问对象的值时,它不知道它应该是什么类型,因此隐式为 any。当然,您仍然可以明确任何值,但您仍然需要使用类似于我给出的示例的值。

关于 typescript :类型 '{}' 没有索引签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51214575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com