Angular 角度-如何固定';属性不存在于类型';错误?

Angular 角度-如何固定';属性不存在于类型';错误?,angular,typescript,Angular,Typescript,我正在跟踪()。我遵循了完全相同的代码,我收到了以下错误: 错误TS2339:类型上不存在属性“getEmployees” “雇员服务” 我浏览了互联网,访问了许多关于堆栈溢出的问题,比如,和,以及其他许多与GitHub上的这个错误相关的问题 服务: //import statements go here ... @Injectable() export class EmployeeService { private listEmployees: Employee[] = [ {

我正在跟踪()。我遵循了完全相同的代码,我收到了以下错误:

错误TS2339:类型上不存在属性“getEmployees” “雇员服务”

我浏览了互联网,访问了许多关于堆栈溢出的问题,比如,和,以及其他许多与GitHub上的这个错误相关的问题

服务:

//import statements go here ...

@Injectable()
export class EmployeeService {
private listEmployees: Employee[] = [
    {
      //just to avoid longer code, deleted dummy data.
    },
  ];

  getEmployees(): Employee[] {
      return this.listEmployees; //ERROR in src/app/employees/list-employees.component.ts(14,44)
  }
}
//import statements
@Component({
    selector: 'app-list-employees',
    templateUrl: './list-employees.component.html',
    styleUrls: ['./list-employees.component.css']
})
export class ListEmployeesComponent implements OnInit {
    employees: Employee[];
    constructor(private _EmployeeService: EmployeeService) { }

    ngOnInit() {
        this.employees = this._EmployeeService.getEmployees();
    }

}
组件类:

//import statements go here ...

@Injectable()
export class EmployeeService {
private listEmployees: Employee[] = [
    {
      //just to avoid longer code, deleted dummy data.
    },
  ];

  getEmployees(): Employee[] {
      return this.listEmployees; //ERROR in src/app/employees/list-employees.component.ts(14,44)
  }
}
//import statements
@Component({
    selector: 'app-list-employees',
    templateUrl: './list-employees.component.html',
    styleUrls: ['./list-employees.component.css']
})
export class ListEmployeesComponent implements OnInit {
    employees: Employee[];
    constructor(private _EmployeeService: EmployeeService) { }

    ngOnInit() {
        this.employees = this._EmployeeService.getEmployees();
    }

}
我已经在
app.module.ts
中导入了服务,并将其添加到
ngModule
的提供者数组中


我无法解决此错误,也无法理解导致此错误的原因。

通常在开发角度应用程序时发生。要解决此问题,请关闭服务器并重新启动:

$ ng serve 
解释
这是因为当您启动应用程序时,服务器实际上正在为存储在dist文件夹中的包(JavaScript/CSS/HTML…输出文件)提供服务。有时,当您在代码中进行更改时,这些更改不会反映在捆绑包中,这将导致服务器仍然使用旧的捆绑包

如果您想避免编译警告,那么最糟糕的修复方法是

employees: any[];
任何实例都允许任何方法调用该对象上的任何方法。这将避免编译警告,但它不是运行时安全的


在使用它之前你需要小心。如果您确定该方法在运行时可用,则只使用它。

在方法声明中使用静态关键字:

 public static getEmployees(): any []{

}

我还将订阅服务方法,而不是将其保存到
ngOnInit()
中的另一个值:

例如:

ngOnInit(){
   this.getEmployees()
}

private getEmployees(): void {
    this._EmployeeService.getEmployees()
        .subscribe(fetchedEmployees = > this.employees = fetchedEmployees)
}

如果上述所有内容都已检查,请检查

constructor(private\u employeeService:employeeService){}


private,访问说明符在那里。当访问说明符丢失时,同样的问题也会发生。

如果使用命令
ng serve
命令并生成成功

然后,使用命令
ngbuild--prod
faild,智能感知就正确了

您可能在源代码方面遇到问题

对于不同的
配置
将使用不同的文件,它们都在
angular.json

environment.ts
将替换为
environment.prod.ts

“配置”:{
“生产”:{
“文件替换”:[
{
“替换”:“src/environments/environment.ts”,
“with”:“src/environments/environment.prod.ts”
}
],
...

因此,根据你的配置,你必须修改
className.prod.ts
className.ts

你能把plunker或stackblitz放进去吗?这将有助于更好地调试你的代码确切的错误是什么?你能发布完整的错误吗?不要只在你的代码中添加一条注释,将人们指向行,并期望其他人知道w错误就在这里。我已经在问题中提到了错误本身。这种行为也发生在ionic 4 CLI上。因此,如果一个服务丢失,重新启动它的成员将有所帮助。我不敢相信简单的重新启动会起作用。我到处查看并试图更改代码。你能告诉我为什么会出现这种行为吗?@GauravChauhan我突然遇到这个问题,重新启动IDE和ng服务无法解决this@LennyD你能发布更多的细节让人们看吗?