繁体   English   中英

Angular 11 类型未定义不可分配给类型“T”

Angular 11 Type undefined is not assignable to type 'T'

提示:本站收集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;
       ~~~~~~~~~~
3 个回复

添加。 到 '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.valueT类型

简而言之,解决方案是要么删除可选参数? 或更改this.value的类型

value: T | undefined
3 类型“ T”不可分配给类型“ T”

我是一位经验丰富的javascript开发人员,最近学习C#作为我的第一种静态类型语言。 我的下一个项目使用的是打字稿,所以我一直在研究。 这是我的代码: 编辑:我也有实现IMonad<T> 这是我从tsc得到的错误: src / lazy_mo ...

4 未定义不可分配给用户类型

我收到以下错误 从组件中我们可以调用具有以下输入变量的MyAppComponent UserInfo是如下所示的界面模型 和MyConfig是一个班级 在当前的功能代码中, @Input变量使用非null断言运算符进行修饰! 因为我无法在构造函数中明确定义它们。 ...

5 类型“对象”不可分配给类型“ T”

最近,我将一个项目从angular 2升级到angular6。偶然发现了一些服务代码,该服务代码在以前的版本中正在运行,但在较新的版本中却未运行 得到下面的错误: 类型“ Object [Extract]”不可分配给类型“ T [Extract]”。 类型“对象”不可分配给类 ...

6 类型 'null' 不能分配给类型 'T'

我有这个通用方法 我收到语法错误 TS2322:类型“null”不可分配给类型“T”。 我期待它编译,因为T可能是null 。 解决这个问题的正确方法是什么 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM