Angular 未定义的角度11类型不可分配给类型';T';
我试着用谷歌动态表单来显示Angular 11的原样,我发现了一些错误 这里是所有的代码逐字复制,显然它在这里工作,但在我的开发机器上给我错误。 √ 编译成功Angular 未定义的角度11类型不可分配给类型';T';,angular,typescript,Angular,Typescript,我试着用谷歌动态表单来显示Angular 11的原样,我发现了一些错误 这里是所有的代码逐字复制,显然它在这里工作,但在我的开发机器上给我错误。 √ 编译成功 Error: src/app/_models/question-base.ts:21:5 - error TS2322: Type 'T | undefined' is not assignable to type 'T'. 'T' could be instantiated with an arbitrary type which
Error: src/app/_models/question-base.ts:21:5 - error TS2322: Type 'T | undefined' is not assignable to type 'T'.
'T' could be instantiated with an arbitrary type which could be unrelated to 'T | undefined'.
Type 'undefined' is not assignable to type 'T'.
'T' could be instantiated with an arbitrary type which could be unrelated to 'undefined'.
21 this.value = options.value;
~~~~~~~~~~
考虑
选项的类型
选项:{
值?:T;
}
因此,选项。值
将属于类型T |未定义
,因为?
表示值是可选的
现在是this.value的类型
值:T;
因此,这个.value
将是T
现在让我们假设我们不为选项提供任何值。值
然后我们将分配this.value=undefined
,这在理想情况下应该警告我们,因为this.value
属于T
简而言之,解决方案是删除可选参数?
或更改此值的类型
值:T |未定义
考虑选项的类型
选项:{
值?:T;
}
因此,选项。值
将属于类型T |未定义
,因为?
表示值是可选的
现在是this.value的类型
值:T;
因此,这个.value
将是T
现在让我们假设我们不为选项提供任何值。值
然后我们将分配this.value=undefined
,这在理想情况下应该警告我们,因为this.value
属于T
简而言之,解决方案是删除可选参数?
或更改此值的类型
值:T |未定义
添加!“this.value=options.value!;”应该修复它,因为“!”运算符指示此值不可为空。正在添加!“this.value=options.value!;”应该修复它,因为“!”运算符指示此值不可为null。您可以消除“类型“t”的所有错误。|未定义的“不可分配给类型“t”
通过将tsconfig.json文件中的属性“strict”设置为false,您可以消除“Type'T | undefined'不可分配给Type'T”的所有错误
通过将tsconfig.json文件中的属性“strict”设置为false,您的tsconfig.json在dev机器中是否不同?是否可以尝试添加
tothis.value=options.value代码>拜托?拉兹,这就解决了,谢谢,如果你把这个作为一个答案而不是一个评论,我可以把它标记为正确的。很高兴它对你有用。这回答了你的问题吗?您的tsconfig.json在dev机器中是否不同?能否尝试添加
tothis.value=options.value代码>拜托?拉兹,这就解决了,谢谢,如果你把这个作为一个答案而不是一个评论,我可以把它标记为正确的。很高兴它对你有用。这回答了你的问题吗?移除?给我一个不同的错误:value:T
Property'value'在类型{}中缺少,但在类型{value:T;key?:string |未定义;label?:string |未定义;required?:boolean |未定义;order?:number |未定义;controlType?:string |未定义;type?:string |未定义;options?:{…}[]|“.”保留它并添加T | undefined
给我的错误与我的问题相同:类型“T | undefined”不可分配给类型“T”。”可以用与“T | undefined”无关的任意类型实例化“T”。是否删除?给我一个不同的错误:value:T
Property'value'在类型{}中缺少,但在类型{value:T;key?:string |未定义;label?:string |未定义;required?:boolean |未定义;order?:number |未定义;controlType?:string |未定义;type?:string |未定义;options?:{…}[]|“.”保留它并添加T | undefined
给我的错误与我的问题相同:类型“T | undefined”不可分配给类型“T”。”T'可以用与“T | undefined”无关的任意类型实例化。