Ionic 2 App Conflict“Public”vs“Public Static”

时间:2017-11-13 21:42:03

标签: javascript typescript ionic-framework ionic2 ionic-native

我是这个人的业余爱好者,试着编写一个应用程序,我在代码中找到了冲突的部分。我没有一个干净的代码只是makin'的东西工作,我尝试了这样:

    constructor(platform: Platform, public nativeStorage: NativeStorage) {
    platform.ready().then(() => {
    this.nativeStorage.getItem('NoTaleDB').then(function (json) {
    if (json) {
      GlobalVariables.novelList = JSON.parse(json);
    }
    });
    });
    }

    public static save() {
    this.nativeStorage.setItem('NoTaleDB', JSON.stringify(GlobalVariables.novelList)).then(() => {}, () => {});
}

得到了这个错误:

Property 'nativeStorage' does not exist on type 'typeof StorageService'

当我将功能修改为:

public save() {
    this.nativeStorage.setItem('NoTaleDB', JSON.stringify(GlobalVariables.novelList)).then(() => {}, () => {});
}

它找到了nativeStorage但我从Pages和服务本身得到了这个错误:

Property 'save' does not exist on type 'typeof StorageService'.

我一直试着在很长一段时间内完成这个应用程序,但最终只是试着修复错误。请提供一个简单的解决方案,新手可以理解的东西。谢谢。 < 3

1 个答案:

答案 0 :(得分:0)

假设您希望函数 body 能够正常运行:

public static save() {
    this.nativeStorage.setItem('NoTaleDB', JSON.stringify(GlobalVariables.novelList)).then(() => {}, () => {})
}

this this)。

固定代码

必须:

public save() {
        this.nativeStorage.setItem('NoTaleDB', JSON.stringify(GlobalVariables.novelList)).then(() => {}, () => {})
    }

现在你 收到错误:

  

类型'typeof StorageService'上不存在属性'save'。

您正在呼叫StorageService.save。这是错的。您应该在某个实例上调用save,例如

new StoargeService(pass in the stuff it needs).save(); // Works now

更多

有关TypeScript类的一些文档:https://basarat.gitbooks.io/typescript/content/docs/classes.html