鉴于这些类型: 这个用例怎么来的: 抛出此类型错误:64:53 Type 'string' is not assignable to type 'undefined'. 63 | <Button size="big">Another button ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我正在尝试按原样将这个 google 动态表单用于 Angular 11,但出现错误。
这是逐字复制的所有代码,显然它在这里工作,但在我的开发机器上给了我错误。 https://stackblitz.com/edit/angular-sccsnu?file=src%2Fapp%2Fquestion-base.ts
√ 编译成功。
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;
~~~~~~~~~~
添加。 到 'this.value = options;value.;' 应该修复它,因为'!' 运算符指示此值不可为空。
您可以通过将tsconfig.json 文件中的属性“strict”设置为false来消除“Type 'T | undefined' is not assignable to type 'T'”的所有错误
考虑options
的类型
options: {
value?: T;
}
所以options.value
的类型是T | undefined
T | undefined
,因为?
这意味着 value 是可选的
现在this.value
的类型
value: T;
所以this.value
的类型是T
现在假设我们没有为options.value
提供任何值,那么我们将分配this.value = undefined
理想情况下应该警告我们,因为this.value
是T
类型
简而言之,解决方案是要么删除可选参数?
或更改this.value
的类型
value: T | undefined
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.