Аргумент типа 'HttpClient' нельзя назначить параметру типа 'HttpClient' (угловая миграция v4 к v5) - PullRequest
0 голосов
/ 04 октября 2018

Я пытаюсь обновить мое угловое приложение (v4) до углового 5, в моем приложении у меня есть пакет ngx-admin-lte в node_modules, у меня все еще есть последняя ошибка:

ERROR in node_modules/ngx-admin-lte/src/ngx-admin-lte.module.ts(12,37): 
error TS2345: Argument of type 'HttpClient' is not assignable to parameter
of type 'HttpClient'.Types have separate declarations of a private property
'handler'.

Вмой ngx-admin-lte.module.ts, который я изменил:

import { HttpModule, Http } from '@angular/http';
...
export function createTranslateLoader( http: Http ) {
return new TranslateHttpLoader( http, '../public/assets/i18n', '.json' );
} 
// imports
imports: [
BrowserModule,
FormsModule,
HttpModule,
RouterModule,
ToasterModule,
TranslateModule.forRoot({
  loader: {
    deps: [Http],
    provide: TranslateLoader,
    useFactory: (createTranslateLoader)
}}),
],

И файл http-loader.d.ts, который вызывается методом TranslateHttpLoader в ngx-admin-lte.module.ts

// http-loader.d.ts
import { Http } from "@angular/http";
import { TranslateLoader } from "@ngx-translate/core";
import "rxjs/add/operator/map";
export declare class TranslateHttpLoader implements TranslateLoader {
private http;
private prefix;
private suffix;
constructor(http: Http, prefix?: string, suffix?: string);
/**
 * Gets the translations from the server
 * @param lang
 * @returns {any}
 */
getTranslation(lang: string): any;
} 

в:

import { HttpClientModule, HttpClient } from '@angular/common/http';
...
export function createTranslateLoader( http: HttpClient ) {
return new TranslateHttpLoader( http, '../public/assets/i18n', '.json' );
}
//imports
imports: [
BrowserModule,
FormsModule,
HttpClientModule,
RouterModule,
ToasterModule,
TranslateModule.forRoot({
  loader: {
    deps: [HttpClient],
    provide: TranslateLoader,
    useFactory: (createTranslateLoader)
}}),
],

//http-loader.d.ts
import { HttpClient } from "@angular/common/http";
import { TranslateLoader } from "@ngx-translate/core";
import "rxjs/add/operator/map";
export declare class TranslateHttpLoader implements TranslateLoader {
private http;
private prefix;
private suffix;
constructor(http: HttpClient, prefix?: string, suffix?: string);
/**
 * Gets the translations from the server
 * @param lang
 * @returns {any}
 */
getTranslation(lang: string): any;
}

, но при попытке компиляции все равно есть ошибка, упомянутая выше, и эта ошибка происходит из функции:

export function createTranslateLoader( http: HttpClient ) {
return new TranslateHttpLoader( http, '../public/assets/i18n', '.json' );
}

и яне могу понять, где ошибка.Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...