2017-02-23 87 views
0

我有一個問題,試圖找出這裏的問題。我創建了一個自定義的Http類ExtendHttp,它擴展了Angular2 Http類並將它打包爲一個npm模塊。它編譯並在項目內部運行測試用例,但是當我將其導入到使用NPM模塊等項目,它會給出一個錯誤說:類型'ConnectionBackend'的參數不能分配給'ConnectionBackend'類型的參數

嚴重性:「錯誤」的消息:「類型的參數‘ConnectionBackend’是 不能分配給'ConnectionBackend'類型的參數。屬性'createConnection'的 類型不兼容。 類型'(request:any)=>連接'不可分配給類型'(request:any)=>連接'。有兩個不同的類型,這個名字 存在,但它們是不相關的。 類型'連接'不可分配以鍵入'連接'。這個名稱存在兩種不同的類型,但它們不相關。 屬性「請求」的類型不兼容。 類型'請求'不可分配以鍵入'請求'。這個名稱存在兩種不同的類型,但它們不相關。 屬性「標題」的類型不兼容。 類型「標題」不可分配爲鍵入「標題」。這個名稱存在兩種不同的類型,但它們不相關。 類型具有私有屬性'mayBeSetNormalizedName'的單獨聲明。'在:'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

請發佈自定義Http類的代碼。 –

+0

請加上'AppModule'的相關部分和你使用的導入 –

+0

那麼你在哪裏導入'HttpModule'?請添加您的TypeScript導入。 –

回答

0

在實現將CoreModule寫入導入npm模塊的項目之後是一個不好的主意,因此將CoreModule的寫入移回創建項目並將其與npm模塊一起打包以解決問題。

感謝GünterZöchbauer時間&的努力,你會意識到我出錯的地方。

相關問題