我收到打字稿错误'属性不存在于对象'来自我的打字稿文件。我已经阅读了几篇关于此的帖子,但我仍然不确定如何实施这项工作。
我有一个JSON对象有两个属性,我解压缩它所以我可以直接访问这两个值,这很好,只是编译时我收到错误。
payload: {
value1: '',
value2: ''
}
我的私人方法是问题的来源。
private update(respo : Object) : void {
if (respo.hasOwnProperty('value1') || respo.hasOwnProperty('value2')) {
(<FormControl>this.controlGroup.controls['ctrlone']).setValue(respo.value1);
(<FormControl>this.controlGroup.controls['ctrltwo']).setValue(respo.value2);
}
}
我尝试导出如下所示的界面但是我收到了控制台错误&#39;?参数未找到&#39;
interface responseObject {
value1?: string
value2?: string
}
感谢任何帮助。我使用的是typescript 1.8。
吉米亨德里。
答案 0 :(得分:3)
您的问题似乎与type参数有关。不要输入Object
。虽然我不确定您的界面有什么问题(可能是您缺少分号?)
这对我有用:
interface responseObject {
value1?: string;
value2?: string;
}
class SomeClass {
private update(respo : responseObject) : void {
if (respo.hasOwnProperty('value1') || respo.hasOwnProperty('value2')) {
(<FormControl>this.controlGroup.controls['ctrlone']).setValue(respo.value1);
(<FormControl>this.controlGroup.controls['ctrltwo']).setValue(respo.value2);
}
}
}
当您输入Object
的内容时,编译器知道的唯一属性是Object上存在的属性。制作一个界面绝对是正确的方式来实现这一目标(对你来说非常好!)但是在将来,&#34;解决方法&#34;你可能正在寻找的是any
类型。