【发布时间】:2017-08-12 12:32:03
【问题描述】:
我正在使用 typescript 制作一个 ionic 2 应用程序,在将本地 typescript 安装从版本 2.1.0 升级到版本 2.2.1 后,我开始收到此错误:
类型 '() => Observable' 不可分配给类型 '() => 可观察”。两种不同的类型 此名称存在,但它们无关。类型“Observable”不可分配给类型“Observable”。 存在同名的两种不同类型,但它们不相关。
以下每一行都会重复此错误
L28: this.onDisconnect = Network.onDisconnect
L29: this.onchange = Network.onchange
L30: this.ontypechange = Network.ontypechange
Network 是从ionic-native 导入的类,其onDisconnect、onchange 和ontypechange 方法定义如下:
static onDisconnect(): Observable<any>;
static onchange(): Observable<any>;
static ontypechange(): Observable<any>;
我有 onDisconnect、onchange 和 ontypechange 作为名为“网络”的自定义类(@Injectable() 类)的 public 属性,我将它们定义如下:
L15: public onDisconnect: ()=>Observable<any>
L16: public ontypechange: ()=>Observable<any>
L17: public onchange: ()=>Observable<any>
我有三个问题?
第一:有人能帮我理解这个错误在打字稿中的真正含义以及为什么它会在我的代码中出现。
第二:虽然我知道我可以扩展类,但我不想这样做。所以我要问,将我的方法声明为public 而类中的方法是static 的区别会导致这个问题吗?
第三:这两种在类上定义属性有什么区别?
编辑:
我刚刚意识到我之前尝试过扩展 Network 类,但由于静态声明而失败
【问题讨论】:
标签: angular typescript ionic-framework static public