“ConnectionBackend”类型的参数不能分配给“ConnectionBackend”类型的参数

时间:2017-02-23 10:23:14

标签: angular typescript

我有一个问题试图弄清楚这里的问题。我创建了一个自定义的Http类ExtendHttp,它扩展了Angular2 Http类并将其打包为npm模块。它编译并测试在项目中运行的案例,但是当我使用npm模块将其导入到其他项目中时,它会出错:

  

严重性:'错误'消息:'类型'ConnectionBackend'的参数是   不能分配给'ConnectionBackend'类型的参数。种类   属性'createConnection'不兼容。       输入'(request:any)=>连接'不能分配给''(request:any)=>连接'。这个名字有两种不同的类型   存在,但它们是无关的。         “连接”类型不能分配给“连接”类型。存在两种具有此名称的不同类型,但它们是不相关的。           属性“请求”的类型不兼容。             “请求”类型不能分配给“请求”类型。存在两种具有此名称的不同类型,但它们是不相关的。               属性“标题”的类型不兼容。                 “标题”类型不能指定为“标题”类型。存在两种具有此名称的不同类型,但它们是不相关的。                   类型具有私有属性'mayBeSetNormalizedName'的单独声明。 at:'35,42'来源:'ts'

这是我的自定义Http类:

@Injectable()
export class ExtendedHttp extends Http {
    private logger: Logger;
    constructor(_backend: ConnectionBackend, _defaultOptions: RequestOptions,
                private config: ApplicationConfiguration,
                private evtsrv: EventService) {
        super(_backend, _defaultOptions);
        this.logger = new Logger(config.getLoggerConfig());
    }
...
}

这是我在其他项目中使用它的方式:

@NgModule()
export class CoreModule {
    static forRoot(authzrule: AuthzRule[]): ModuleWithProviders {
    return {
        ngModule: CoreModule,
        providers: [
        { provide: UserSessionStorageService, useClass: UserSessionStorageService },
        {
        provide: Http,
        useFactory: (xhrBackend: ConnectionBackend, requestOptions: RequestOptions,
            config: ApplicationConfiguration, evtservice: EventService) =>
            new ExtendedHttp(xhrBackend, requestOptions, config, evtservice),
        deps: [ConnectionBackend, RequestOptions, ApplicationConfiguration, EventService]
},

0 个答案:

没有答案