我从一个文件中读取键值对,键是字符串,值是{r,g,b}个数字.
ColorNames.json文件:
{
"name1": { "r": 151, "g": 23, "b": 26 },
"name2": { "r": 62, "g": 137, "b": 32 },
"name3": { "r": 13, "g": 31, "b": 62 },
}
fetch("/colorNames.json")
.then((res) => res.json())
.then((data) => {
colorsNames = data;
});
当我将值传递给函数时,我收到以下错误:
元素隐式具有""any""类型,因为""字符串""类型的表达式不能用于索引类型""{}""."" 在类型‘{}’上未找到参数类型为‘STRING’的索引签名.
for (let key in colorsNames) {
let distance = getDistance(color, colorsNames[key]);
}
function getDistance(
color: { r: number; g: number; b: number },
match: { r: number; g: number; b: number }
)
另外,将ColorsNames声明为的正确方式是什么?
var colorsNames: object;