对不起,我的愚蠢的问题,但我不能搜索答案为我的promlm。* TS 7053:元素隐式具有“any”类型,因为类型“string”的表达式不能用于索引类型“{ width:数量;高度:编号;标题:string;}'*
let menu:{width:number; height:number; title:string} = {
width: 200,
height: 300,
title: 'My menu',
}
function multiplyNumeric(menu:{width:number; height: number; title: string}):void {
for (let k in menu){
if (typeof menu[k] === "number"){
menu[k] = Number(menu[k]) * 2;
}
}
}
multiplyNumeric(menu);
3条答案
按热度按时间x8diyxa71#
TypeScript不知道
k
在multiplyNumeric
函数内部的for
循环的上下文中意味着什么。由于
Menu
的类型是严格定义的,并且您在运行时确定Menu
的值,因此需要添加一个额外的泛型来将类型传递给Menu
,如下所示:nhhxz33t2#
在你的multiplyNumeric函数中,参数'menu'的数据类型无效。你不能这样设置。据我所知,你希望你的menu参数是一个有三个属性的对象
您需要定义一个接口来完成这项工作。
然后做类似这样的事情:
twh00eeo3#