TS2339错误:组件上不存在employee属性的问题如何解决?
问题排查与修复方案
错误原因
- 模板中循环变量名与实际调用的变量名不匹配:你在
*ngFor指令中声明的遍历项变量名为e,但后续获取属性时统一使用了不存在的变量名employee,组件类中也没有定义全局的employee属性,因此触发TS2339报错。 - 你修改
strict: false的操作无效,是因为该配置仅控制TS类型校验严格度,你的问题属于变量名写错的语法问题,和类型校验规则无关。
可行修复方案
二选一即可,推荐第一种方案语义更清晰:
方案1:统一循环变量名为employee
修改*ngFor声明行的变量名,修改后完整模板代码如下:
<hr> <h3>List of Employees</h3> <hr> <div *ngFor="let employee of listofEmployees"> <a routerLink="contactlist/{{employee.id}}"> <p>{{employee.id }}. {{employee.firstName}} {{employee.lastName}}</p> </a> <button (click)="deleteEmployee(employee.id)">Delete Contact</button> </div>
方案2:统一属性调用的变量名为e
保留*ngFor的let e of listofEmployees声明,将后续所有employee替换为e即可,示例如下:
<a routerLink="contactlist/{{e.id}}"> <p>{{e.id }}. {{e.firstName}} {{e.lastName}}</p> </a> <button (click)="deleteEmployee(e.id)">Delete Contact</button>
内容的提问来源于stack exchange,提问作者aj lattin
相关产品推荐
相关产品推荐

