typeof XService is not assignable to type 'FactoryProvider'. Property 'provide' is missing

kosiara - Bartosz Kosarzycki picture kosiara - Bartosz Kosarzycki · Feb 9, 2017 · Viewed 11.5k times · Source

I have an Angular 2 NgModule in a Ionic 2 mobile app defined like so:

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

and the service defined this way:

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

However, I'm getting the following error at runtime:

Type 'typeof VatRatesDbService' is not assignable to type 'FactoryProvider'. Property 'provide' is missing in type 'typeof VatRatesDbService'.

Answer

Blast06 picture Blast06 · Jan 30, 2019

It happens because of ionic latest update for ionic 4.

You have to import it like this (adding '/ngx' )

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

Or, you can downgrade the plugin's version

It was happening to me with another plugin.

More info here