【发布时间】:2021-02-28 14:35:35
【问题描述】:
我给的时候出错了
export class UserComponent implements OnInit {
user:User;
constructor(){
}
ngOnInit(){
this.user = {
firstName : "test",
lastName : "test",
age : 40,
address: {
street : "Test",
city : "test",
state: "test"
}
}
}
}
我收到此错误:
Property 'user' has no initializer and is not definitely assigned in the constructor.
user 继承自 User.ts,User.ts 包含以下代码:
export interface User {
firstName:string,
lastName:string,
age?:number,
address?:{
street?: string,
city?:string,
state?:string
}
}
向用户添加? 在其他文件中显示错误:
还有另一个名为 users 的文件夹...这是主要的...现在我添加 ?在这里,它显示了这个错误。
【问题讨论】:
-
好吧,它没有在构造函数中初始化或分配,是吗?您可以通过这样做而不是在 ngOnInit 中避免该错误。
-
是的..但是在课程中,他们说构造函数用于注入依赖项..在构造函数中添加它们后,我仍然遇到第二个错误(在问题的图 2 中)
-
我不知道你在做什么课程,但它不一定是独家。当turning on strict mode 时,我不得不从
ngOnInit切换到constructor,但所有测试仍然通过。并且不清楚您在最后两个屏幕截图中的预期 - 1. 在一个地方将其设为可选并不会使它在任何地方都是可选的;和 2. 如果它是可选的users?.lengthis 可能未定义。 -
哦...为什么
users?.length未定义?这里不想提课程名称..可能违反栈溢出规则 -
它可能未定义,因为如果 users 是可选的,则 users 可以未定义,在这种情况下 users?.length 也未定义。为什么要提及您从中获取信息的资源是个问题?
标签: angular typescript