typeof XService 不能分配给类型"工厂提供程序"。缺少属性'provide'



我在 Ionic 2 移动应用程序中有一个 Angular 2 NgModule,定义如下:

@NgModule({
  declarations: [
    MyApp,
    HomePage,
  ],
  imports: [
    IonicModule.forRoot(MyApp)
  ],
  bootstrap: [IonicApp],
  entryComponents: [
    MyApp,
    HomePage,
  ],
  providers: [{provide: ErrorHandler, useClass: IonicErrorHandler}, VatRatesDbService]
})
export class AppModule {}

服务定义方式如下:

import { Injectable } from '@angular/core';
import * as PouchDB from 'pouchdb';
@Injectable()
export class VatRatesDbService {
  private _db;
  private constructor() {
    this._db = new PouchDB('rates.db', { adapter: 'websql' });
  }
}

但是,我在运行时收到以下错误:

类型

"类型VatRatesDbService"不可分配给类型 "工厂供应商"。类型"类型"中缺少属性"提供" 增值税数据库服务'。

发生这种情况是因为离子4的最新更新。

你必须像这样导入它(添加'/ngx'(

import { PluginName} from '@ionic-native/pluginName/ngx';

或者,您可以降级插件的版本

另一个插件发生在我身上。

更多信息在这里

解决方案是从构造函数中删除私有修饰符。您根本无法通过私人结构器提供可注射服务。

public constructor() {
  this._db = new PouchDB('rates.db', { adapter: 'websql' });
}

或:

constructor() {
  this._db = new PouchDB('rates.db', { adapter: 'websql' });
}

它在离子4中对我有用

你必须像这样导入它(添加'/ngx'(

从"@ionic-native/pluginName/ngx"导入 { PluginName}

;

源链接

我在最新的 Ionic 4 CLI 版本 4.9.0 中遇到此问题

当我在最新的CLI中创建旧版本的Ionic 3应用程序并安装本机插件应用程序版本时,我遇到了此错误

[ts]类型"AppVersionOriginal"不可分配给类型"提供程序"。 类型"AppVersionOriginal"缺少类型"工厂提供程序"中的以下属性:提供,使用工厂 [2322]

为此,我们需要安装旧版本的本机插件

相关内容

  • 没有找到相关文章

最新更新