我的代码如下所示:
interface ImyInterface {
v: number;
}
class A implements OnInit {
ngOnInit() {
let myObservable$ = getObs();
myObservable$.subscribe(data => {
const foo = data as ImyInterface;
foo. // <-- VS Code IDE autcompletes with 'v'
});
}
};
但是,我认为声明一个额外的变量是一个很小的开销,所以我尝试了这个:
myObservable$.subscribe(data => {
data = data as ImyInterface;
data. // <-- VS Code IDE didn't autocomplete
});
为什么这种方法失败了?我在想它与变量范围有关,也许是阴影?我不知道,因为我是初学者。
答案 0 :(得分:2)
你应该尝试这样做:
myObservable$.subscribe((data: ImyInterface) => {
alert(data.v);
});
使用上面的代码,您声明您的订阅函数需要一个实现ImyInterface
接口的参数。