不能将箭头函数的参数作为接口?

时间:2017-10-02 19:45:09

标签: javascript angular function typescript casting

我的代码如下所示:

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
});

为什么这种方法失败了?我在想它与变量范围有关,也许是阴影?我不知道,因为我是初学者。

1 个答案:

答案 0 :(得分:2)

你应该尝试这样做:

myObservable$.subscribe((data: ImyInterface) => {
    alert(data.v);
});

使用上面的代码,您声明您的订阅函数需要一个实现ImyInterface接口的参数。