typeof XService 不可分配给类型 'FactoryProvider'。 属性 'provide' 缺失
typeof XService is not assignable to type 'FactoryProvider'. Property 'provide' is missing
我在 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' });
}
}
但是,我在运行时遇到以下错误:
Type 'typeof VatRatesDbService' is not assignable to type
'FactoryProvider'. Property 'provide' is missing in type 'typeof
VatRatesDbService'.
解决方案是从构造函数中删除 private 修饰符。您根本无法使用私有构造函数提供可注入服务。
public constructor() {
this._db = new PouchDB('rates.db', { adapter: 'websql' });
}
或:
constructor() {
this._db = new PouchDB('rates.db', { adapter: 'websql' });
}
我在最新的 Ionic 4 CLI 版本 4.9.0 中遇到了这个问题
当我在最新的 CLI 中创建旧版本的 Ionic 3 应用程序并安装 Native 插件时 App Version 我遇到了这个错误
[ts]
类型 'AppVersionOriginal' 不能分配给类型 'Provider'。
类型 'AppVersionOriginal' 缺少类型 'FactoryProvider' 的以下属性:提供、useFactory [2322]
为此,我们需要安装旧版本的本机插件
这是因为 ionic 4 的 ionic 最新更新。
你必须像这样导入它(添加 '/ngx' )
import { PluginName} from '@ionic-native/pluginName/ngx';
或者,您可以降级插件的版本
另一个插件发生在我身上。
它在 Ionic 4 中对我有用
你必须像这样导入它(添加 '/ngx' )
从“@ionic-native/pluginName/ngx”导入 {PluginName};
我在 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' });
}
}
但是,我在运行时遇到以下错误:
Type 'typeof VatRatesDbService' is not assignable to type 'FactoryProvider'. Property 'provide' is missing in type 'typeof VatRatesDbService'.
解决方案是从构造函数中删除 private 修饰符。您根本无法使用私有构造函数提供可注入服务。
public constructor() {
this._db = new PouchDB('rates.db', { adapter: 'websql' });
}
或:
constructor() {
this._db = new PouchDB('rates.db', { adapter: 'websql' });
}
我在最新的 Ionic 4 CLI 版本 4.9.0 中遇到了这个问题
当我在最新的 CLI 中创建旧版本的 Ionic 3 应用程序并安装 Native 插件时 App Version 我遇到了这个错误
[ts] 类型 'AppVersionOriginal' 不能分配给类型 'Provider'。 类型 'AppVersionOriginal' 缺少类型 'FactoryProvider' 的以下属性:提供、useFactory [2322]
为此,我们需要安装旧版本的本机插件
这是因为 ionic 4 的 ionic 最新更新。
你必须像这样导入它(添加 '/ngx' )
import { PluginName} from '@ionic-native/pluginName/ngx';
或者,您可以降级插件的版本
另一个插件发生在我身上。
它在 Ionic 4 中对我有用
你必须像这样导入它(添加 '/ngx' )
从“@ionic-native/pluginName/ngx”导入 {PluginName};