【问题标题】:Cannot cast argument of arrow function as an interface?不能将箭头函数的参数转换为接口?
【发布时间】:2017-10-02 19:45:09
【问题描述】:

我的代码如下所示:

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

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

【问题讨论】:

    标签: javascript angular function typescript casting


    【解决方案1】:

    你应该尝试这样做:

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

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

    【讨论】:

    • 好。但是为什么我的方法失败了?感谢您的支持 =)
    猜你喜欢
    • 1970-01-01
    • 2019-04-12
    • 1970-01-01
    • 2020-03-07
    • 2017-12-06
    • 2019-07-10
    • 2018-08-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多