javascript - 无法将箭头函数的参数转换为接口(interface)?

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

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

最佳答案

你应该尝试这样做:

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

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

关于javascript - 无法将箭头函数的参数转换为接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46532655/

相关文章:

python - 在方法中编辑字典值

javascript - "this"不是我想要的

javascript - Angular 8 - 尝试比较 '[object Object]' 时出错。仅允许数组和可迭代对象

Angular 7 - [ngModel] 不适用于 mat-select

javascript - Angular 无法识别来自 css3 的图像的静态路径

c - 在 C 中使用结构体作为输入的语法

javascript - 在 JavaScript 中为匿名函数放置参数

javascript - 设置 nextSibling 的 innerHTML

javascript - Zombie.js 不执行同步 ajax 请求

Angular 2 : can change detection be different per each level component?