属性“...”没有初始值设定项,也没有在构造函数中明确分配

新手上路,请多包涵

在我的 Angular 应用程序中,我有一个组件:

 import { MakeService } from './../../services/make.service';
import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-vehicle-form',
  templateUrl: './vehicle-form.component.html',
  styleUrls: ['./vehicle-form.component.css']
})
export class VehicleFormComponent implements OnInit {
  makes: any[];
  vehicle = {};

  constructor(private makeService: MakeService) { }

  ngOnInit() {
    this.makeService.getMakes().subscribe(makes => { this.makes = makes
      console.log("MAKES", this.makes);
    });
  }

  onMakeChange(){
    console.log("VEHICLE", this.vehicle);
  }
}

但在“制造”属性中我有一个错误。我不知道该怎么办…

错误

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

阅读 678
2 个回答

我认为您使用的是最新版本的 TypeScript。请参阅 link 中的“严格类初始化”部分。

有两种方法可以解决此问题:

A. 如果您使用的是 VSCode,您需要更改编辑器使用的 TS 版本。

B. 声明时初始化数组

makes: any[] = [];

或在构造函数内部:

 constructor(private makeService: MakeService) {
   // Initialization inside the constructor
   this.makes = [];
}

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

按照 2 个步骤解决此问题:

  1. “strictPropertyInitialization”:tsconfig.json 中的错误条目
  2. ctrl+c 在终端上停止您的服务器(检查终端,它正在运行)并使用您使用的命令再次运行它 ng serve 这两个步骤,应该可以解决您的问题..因为它解决了我的问题..干杯..; )

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

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