今天在用ts去写代码的时候,遇到了一个小问题,代码如下:
public static objToParm(obj:object): string {
let parm = '?';
for (const key in obj) {
if (Object.prototype.hasOwnProperty.call(obj, key)) {
const value = obj[key];
parm += key + '=' + value + '&';
}
}
return parm.substring(0, parm.length - 1);
}
截图:
报错原因: 这个错误的原因是你在尝试使用将一个字符串作为对象的索引,但是 TypeScript 编译器无法确定该索引是否有效,因为对象类型 “{}” 并没有定义一个接受字符串作为索引的索引签名。
解决办法:使用 { [key: string]: any }
代码:
public static objToParm(obj: { [key: string]: any }): string {
let parm = '?';
for (const key in obj) {
if (Object.prototype.hasOwnProperty.call(obj, key)) {
const value = obj[key];
parm += key + '=' + value + '&';
}
}
return parm.substring(0, parm.length - 1);
}
这样就ok了