Angular - 如何修复“类型上不存在属性”错误?

新手上路,请多包涵

我正在关注 这个视频教程相同的文本版本)。我遵循了完全相同的代码,我收到了这个错误:

错误 TS2339:“EmployeeService”类型上不存在属性“getEmployees”

我在 Internet 上查看并访问了 Stack Overflow 上的许多问题,例如 thisthisthisthis ,以及 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();
    }

}

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

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

原文由 Gaurav Chauhan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 990
2 个回答

它通常发生在您开发 Angular 应用程序时。要解决这个问题,只需关闭服务器并重新启动它:

 $ ng serve

解释

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

原文由 Melchia 发布,翻译遵循 CC BY-SA 4.0 许可协议

有时文件没有保存..所以,保存所有文件或者您可以关闭所有文件(将提示您保存..)并再次构建..为我工作..

原文由 Syed Siraj Wajeed 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进