Typescript 角度无法注入HttpClient获取';Can';t解析CustomerService的所有参数';错误

Typescript 角度无法注入HttpClient获取';Can';t解析CustomerService的所有参数';错误,typescript,angular2-routing,injectable,Typescript,Angular2 Routing,Injectable,我有一个customerService,我试图在这里注入httpClient。错误发生在我注释的那一行。//错误发生在这一行。。在我尝试将httpClient注入我的服务之前,一切都正常 错误消息是: `compiler.js:485 Uncaught Error: Can't resolve all parameters for CustomerService: (?). at syntaxError (compiler.js:485) at CompileMetadataRe

我有一个
customerService
,我试图在这里注入
httpClient
。错误发生在我注释的那一行。
//错误发生在这一行。
。在我尝试将httpClient注入我的服务之前,一切都正常

错误消息是:

`compiler.js:485 Uncaught Error: Can't resolve all parameters for CustomerService: (?).
    at syntaxError (compiler.js:485)
    at CompileMetadataResolver._getDependenciesMetadata (compiler.js:15700)
    at CompileMetadataResolver._getTypeMetadata (compiler.js:15535)
    at CompileMetadataResolver._getInjectableMetadata (compiler.js:15515)
    at CompileMetadataResolver.getProviderMetadata (compiler.js:15875)
    at compiler.js:15786
    at Array.forEach (<anonymous>)
    at CompileMetadataResolver._getProvidersMetadata (compiler.js:15746)
    at CompileMetadataResolver.getNgModuleMetadata (compiler.js:15314)
    at CompileMetadataResolver.getNgModuleSummary
这是我的共享模块

import { NgModule } from "@angular/core";
import { CommonModule } from "@angular/common";
import { FormsModule, ReactiveFormsModule } from "@angular/forms";
import { HttpClientModule  } from "@angular/common/http";
import { AppMaterialModule } from "./app.material.module";
import { FlexLayoutModule } from "@angular/flex-layout";

import { HttpClientProvider } from "../services";


@NgModule({
    imports: [
        CommonModule,
        FormsModule,
        ReactiveFormsModule,
        HttpClientModule ,
        AppMaterialModule
    ],
    providers: [

    ],
    exports: [
        AppMaterialModule,
        FlexLayoutModule,
        FormsModule,
        HttpClientModule 
    ]
})
export class SharedModule {

}

您可能遵循了http的旧指南/教程

使用
HttpClient
时,您需要提供要返回的类型,实际上,您不需要
.map
数据,从而使代码变得更短

get(email: string): Observable<any> {
        const uri = `${this.baseUri}/customer/${email}`;
            //add your model here something like 
            //return this.http.get<Customer>(uri);
        return this.http.get<any>(uri);
    }
get(电子邮件:字符串):可观察

getTextFile(文件名:string){
//get()返回的Observable类型为Observable
//因为指定了文本响应。
//不需要为get()传递类型参数。
返回此.http.get(文件名,{responseType:'text'})
.烟斗(
轻触(//记录结果或错误
data=>this.log(文件名,数据),
error=>this.logError(文件名,错误)
)
);
}

我在这里找到了答案:

我从我的多面体上移除了反射,愚蠢的我


谢谢大家的帮助

创建新文件或添加到现有文件polyfills.ts

import 'core-js/es7/reflect';
包括到webpack.config

module.exports = {
    mode: 'production',
    devtool: 'source-map',
    entry: {
        'app': './ClientApp/main.ts',
        'polyfills': './ClientApp/polyfills.ts'
    },...

这对我有帮助

你能提供你如何使用客户服务吗?@brijmcq我甚至没有在任何地方使用这个。我的申请书快到期了。但编译器中没有错误。您是否尝试重新启动ng serve?@brijmcq im使用此应用程序的webpack。然后尝试重新启动您的webpack服务器,类似这样的错误可能来自任何地方根据您的建议,我在get
返回此.http.get(uri)中添加了any的返回类型遇到相同的问题。
getTextFile(filename: string) {
  // The Observable returned by get() is of type Observable<string>
  // because a text response was specified.
  // There's no need to pass a <string> type parameter to get().
  return this.http.get(filename, {responseType: 'text'})
    .pipe(
      tap( // Log the result or error
        data => this.log(filename, data),
        error => this.logError(filename, error)
      )
    );
}
import 'core-js/es7/reflect';
module.exports = {
    mode: 'production',
    devtool: 'source-map',
    entry: {
        'app': './ClientApp/main.ts',
        'polyfills': './ClientApp/polyfills.ts'
    },...