TS 对象可能为“未定义”,不能将类型“ XXXX | undefined “分配给类型{ xxxx }

这篇具有很好参考价值的文章主要介绍了TS 对象可能为“未定义”,不能将类型“ XXXX | undefined “分配给类型{ xxxx }。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:

        最近用 typeScript ,也就是大家常说的 【 TS 】写点东西,但是老是提醒这个未定义,那个可能为空,主要是 tsconfig.json 中的严格模式我没关,所以今天总结一下,严格模式中【TS】中遇到 对象可能为“未定义” 的具体场景,以及共有几种解决方法!

 1、Vue3 结合 TS 获取 HTMLElement 时报“未定义”

  我们看下面代码,因为我是想使用  ref 的这种方式获取 DOM 节点,进而去使用 DOM 方法(虽然不推荐在Vue/React 直接操作DOM,偶尔用一下还是没关系的),然后就会警告。

TS 对象可能为“未定义”,不能将类型“ XXXX | undefined “分配给类型{ xxxx }

 简单粗暴的处理就是在后面加一个【 ! 】感叹号,告诉 TS 引擎此元素存在,有点类似于 as xxx 的意思!

TS 对象可能为“未定义”,不能将类型“ XXXX | undefined “分配给类型{ xxxx }

 

2、使用声明的可选属性时,报“未定义”

 使用 TS 我们经常会声明一些泛型,但是泛型里的属性并不是所有属性都必须要有,这个时候用到这个泛型可选属性的时候就会警告,可以通过以下两种方法解决:

  1. 使用可选链操作符 ?. 的方式,已经确定当前值有可能为空的情况下使用

TS 对象可能为“未定义”,不能将类型“ XXXX | undefined “分配给类型{ xxxx }

 

    2.使用 as 类型 进行类型断言, 确定当前属性一点会有值时,也可以使用这种方式 

TS 对象可能为“未定义”,不能将类型“ XXXX | undefined “分配给类型{ xxxx }

 

3、API 赋值,不能将类型" XXXX | undefined "分配给类型{ xxxx }

如果我们这么写:list.value = res!.data;

我们会发现还是会报错,主要是 res.data 整体可能都为 undefined,所以我们还可以用 感叹号 来解决

TS 对象可能为“未定义”,不能将类型“ XXXX | undefined “分配给类型{ xxxx }

 要写下面这样写 感叹号 就可以了

 TS 对象可能为“未定义”,不能将类型“ XXXX | undefined “分配给类型{ xxxx }

 

 

 


以上所述皆为实战中的总结,如果不足请路过的大佬多多补充~~~文章来源地址https://www.toymoban.com/news/detail-421082.html

到了这里,关于TS 对象可能为“未定义”,不能将类型“ XXXX | undefined “分配给类型{ xxxx }的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [TS手册学习] 04_对象类型

    TS官方手册:TypeScript: Handbook - The TypeScript Handbook (typescriptlang.org) 匿名与具名 对象类型的声明可以是匿名的,也可以使用 interface 或 type 进行具名声明。 可选属性 optional 使用 ? 标记: 注:使用 PaintOptions 声明的对象,它的 xPos 属性会被初步推断为 number | undefined 类型。 可以使

    2024年02月05日
    浏览(35)
  • C语言【自定义数据类型、typedef、动态内存分配】

    一、自定义数据类型。 ​ 关于下面讲到的所有自定义数据类型(enum、struct、union),有一点要说的是:定义类型不是声明变量,做这步操作时不分配内存,也不能在定义类型时赋值(枚举那个不是赋值,是做一个限定,赋值时赋限定之外的值也不报错。)。 1、typedef (给类

    2024年02月05日
    浏览(46)
  • vite 生成 TypeScript 的类型定义( d.ts )

    核心是 emitDeclarationOnly , declarationDir , declaration 也可以通过 tsc 命令 传入这些参数, 生成 d.ts

    2024年02月14日
    浏览(40)
  • 面试题-TS(二):如何定义 TypeScript 中的变量和函数类型?

    面试题-TS(二):如何定义 TypeScript 中的变量和函数类型? 一、 变量类型的定义 在TypeScript中,我们可以使用冒号(:)来指定变量的类型。以下是一些常见的变量类型: 布尔类型(boolean):表示true或false的值。 数字类型(number):表示数字值。 字符串类型(string):表示文本值

    2024年02月15日
    浏览(40)
  • 关于error: #20: identifier “XXXX“ is undefined缺失.h文件的问题

    起因是在写stm32串口配置的时候,报了这个错,goto也没用,稍微查了查了也没搜到答案,但大概知道是我缺那stm32f1xx_hal_uart.h那个文件,但又不知道怎么给他添进去,最后是科协学长帮我解决的,特此感谢 下图就是当时报的错 然后我就去\\\"stm32f1xx_hal_uart.c\\\"那看看,然后就打开

    2024年02月13日
    浏览(77)
  • virtualbox报错:无法分配USB设备xxxx到虚拟电脑

    1、设备接触不良:重新插拔接口 2、vbox本身问题:正常关闭虚拟机client,关闭host中的vbox管理器 3、usb驱动问题:自行安装对应驱动,或者参考下方引用链接提供的驱动安装方法 4、USB设备筛选器与协议不匹配,这种原因比较犄角旮旯,按照引用链接提供的方法设置好筛选器,

    2024年02月11日
    浏览(44)
  • 【python】面向对象(类型定义&魔法方法)

    目录 一、引言 二、类型定义 1、什么是类型的定义? 2、案例 三、魔法方法 1、什么是魔法方法 2、基础部分 3、比较操作 4、容器类型 5、属性管理 6、封装 7、方法拓展 8、继承 9、多态         Python是一种面向对象的语言,它支持类( class )和对象( object )的概念。面

    2024年02月05日
    浏览(38)
  • 20230628----重返学习-自定义指令的玩法和作用-对象新增属性不能响应的问题-Vue组件中的data属性-Vue生命周

    面试题:自定义指令的玩法和作用 面试题:Vue怎么用 vm.$set() 解决对象新增属性不能响应的问题 ? 面试题:Vue 组件中的 data 为什么必须是函数? 面试题:谈谈你对 Vue2 生命周期的理解? 面试题:简单说一下 $nextTick 的作用及实现原理? 面试题:computed 和 watch 的区别和运用

    2024年02月11日
    浏览(57)
  • Vitis HLS出现undefined reference to的可能解决办法

    问题描述: undefined reference to `cv::namedWindow(std::__cxx11::basic_stringchar, std::char_traitschar, std::allocatorchar const, int)\\\' undefined reference to `cv::resizeWindow(std::__cxx11::basic_stringchar, std::char_traitschar, std::allocatorchar const, int, int)\\\' undefined reference to `cv::imshow(std::__cxx11::basic_stringchar, std::char_traitscha

    2024年02月02日
    浏览(43)
  • 【mybatis-plus实体类复杂对象字段json自动相互转换,以及自定义字段类型解析器】

    引言: mybatis-plus集合对象字段json如何自动进行相互的转换? 怎样在使用mybatis-plus操作数据表的时候自动对实体类属性进行自动解析? 我们平时在做开发的时候,会遇到一个字段保存json串的情况。一般情况下mybatis-plus在做插入/更新之前将对象手动转换成json串,查询要用的时

    2023年04月13日
    浏览(100)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包