我有一个接口,第二个接口的值如下所示。但是当我尝试访问嵌套值时,我收到一个错误。访问嵌套接口值的正确方法是什么?
interface Results {
pass: number;
fail: number;
}
interface Build {
name: string;
results: Results;
}
var obj: Build = {
name: "test",
results: {
pass: 3,
fail: 2
}
}
目前,我试图像没有运气那样访问它:
obj.results.pass
错误我得到:错误类型错误:无法设置属性'传递'未定义的
答案 0 :(得分:0)
您遇到的错误是运行时错误(JavaScript执行引擎),而不是编译错误(TypeScript编译器)。
这是因为undefined
等于const test: Build = {};
test.results.pass; // ERROR TypeError: Cannot set property 'pass' of undefined
:
results
我建议您在访问其子属性之前检查if (test.results) {
test.results.pass;
}
属性值:
GroupContainer
答案 1 :(得分:-1)
对于后来看到这个的人,我不得不在obj中创建一个Result对象,例如:
this.build["results"].pass = #
this.build["results"].fail = #
然后能够通过访问和更改传递和失败,如下所示:
<app-comp [item]="item"></app-comp>