ts报错“对象可能为“未定义”

interface Tree {id: numberlabel: stringchildren?: Tree[]
}
const addData = ref<Tree>()
const append = (data: Tree) => addData.value = data
}
const addChildree = () => {const newChild = { id: id++, label: input.value, children: [] }if (!addData.value.children) { //对象可能为“未定义addData.value.children = []}addData.value.children.push(newChild)dataSource.value = [...dataSource.value]dialogVisible.value = false
}

查资料说问题原因是当使用可选属性时,会报错 参数可能未定义 这边children是可选属性

给出的解决方法

在tsconfig.json中修改strict属性为false,取消严格模式 实测是可以解决这个问题

这时候我想报错的缘故是因为有可选属性 才会报错 所以我换了个必须有的属性测试

还是会报同样的错误 这时候我就觉得不是属性的缘故 应该是对象的缘故 查看定义的addData

// 修前
const addData = ref<Tree>()
// 修改后 ref初始化时为 {}
const addData = ref<Tree>({})

对象未定义的问题解决了 出现了新的问题
const addData = ref<Tree>({id: 0,label: ''
})

给上默认值就可以了

ts报错“对象可能为“未定义”相关推荐

  1. VS远程开发(远程调试)编译报错:对‘xxx’未定义的引用(设置库依赖顺序)(已解决)pthread(项目-->属性-->链接器-->输入-->库依赖项)

    如图在VS中对linux进行远程开发时,编译报错: 貌似是因为在代码中使用了pthread.h的函数,链接库依赖顺序出了问题,我在ubuntu里手动使用gcc main.c -lpthread -o ...

  2. ubuntu 编译c程序报错:对‘pthread_create’未定义的引用

    在ubuntu里编译c多线程代码,命名包含了头文件<pthread.h>,却还是编译报错,说对'pthread_create'未定义的引用 原因: pthread库不是Linux系统默认的 ...

  3. thinkphp开启子域名无法正常访问_解决TP6报错“当前访问路由未定义或不匹配”...

    如果是报路由错误,则说明启用了路由控制,那么所有被访问的页面都需要配置路由,否则将无法访问. 例如: 在浏览器中运行http://hml.tp6.com/admin/getlog 报错:当前访问路由未 ...

  4. 页面报错:无法设置未定义或 null 引用的属性“*****”

    可能的原因: 1:代码写错了 2:在each循环里面重复定义多次一个变量,导致出现这种情况!!! 3:浏览器的问题.刚刚碰到的就是href未定义,结果换一个浏览器就可以 4:js的引用顺序问题,比如我 ...

  5. 【Javascript报错】无法获取未定义或 null 引用的属性“replace“

    今天在处理前端字符串替换的问题中 使用了这段代码: str.replace("xx","xx") 报错 >>  是因为str没获取到 str = u ...

  6. 使用阿里妈妈字体图标库,ie10报错,无法获取未定义或 null 引用的属性“firstChild”

    前因:公司优化页面,要把彩色图片,换成字体图标. 结果:更换完后,测试发现ie10,ie9都会报错,但demo测试是没有问题的. 测试:console.log(target)为null,找到docum ...

  7. 解决vscode红色波浪线的ts报错:找不到模块“store” ts(2307),不识别@别名路径

    使用TS构建vue3项目时,如果使用例如 import { store } from '@/store/user' 发生红色波浪线报错,说明ts不识别@别名,可以修改 tsconfig.json 文件 ...

  8. TS报错:TS2532: Object is possibly ‘undefined‘.

    TS2532: Object is possibly 'undefined',提示对象可能未定义,但其实是有值的,页面也能正常显示,但是对于我来说,看见报错爆红实在无法忍受 解决方法:在后面使用!非空 ...

  9. Vue Language Features (Volar) 会引起ts报错

    困扰了好一阵子的问题. {"name": "test","version": "0.1.0","private ...

最新文章

  1. 混合推荐系统就是多个推荐系统“大杂烩”吗?
  2. java 查找链表中间元素_如何在Java中一次性查找Java中链表的中间元素
  3. Cocos2d-x v3.0物理系统 利用PhysicsEditor创建多边形
  4. 基类数组存放派生类_永远不要将派生类数组赋值给基类类型指针
  5. Python文件类型
  6. 潘石屹回复“5G牌照发放”:我的5G号码可以启用了
  7. softmax函数_反向传播之一:softmax函数
  8. 《Linux编程》作业 ·002【Shell编程】
  9. 网络高可用性99 999 9999 99999
  10. 盘点2020年最好用的7款3D游戏建模软件
  11. 小米5之Root攻略
  12. python算程序员吗_2019为什么有人说Python程序员是假的程序员?
  13. python读取tsv文件_Python读取tsv文件和evalu
  14. Ian Goodfellow回忆GAN诞生故事:几杯啤酒喝出“20年来最酷的深度学习想法”
  15. 笔记本电脑的应用、维护、采购全攻略
  16. 基础通用版IPv6转换服务使用说明及设置示例
  17. 【模板】FHQ Treap
  18. 空间权重矩阵与相关性检验(Stata)
  19. ByteCTF2021安全范儿高校挑战赛线上Misc-《HearingNotBelieving》
  20. Linux磁盘管理——分区+挂载(fdisk+gdisk+mount+lsblk+df)

热门文章

  1. c 语言数据库.pdf,c语言连接sql数据库.pdf
  2. 视频教程-多人网络聊天室-Unity3D
  3. 2014年新款MacBook Pro Retina 13、15全系评测与选购建议
  4. 计算机在条形码的应用,常用一维条码及其应用领域介绍
  5. 搭建私服-docker registry
  6. 拆分汉字|中文拆字|分割汉字
  7. Mysql安装出现的问题Building CXX object sql/CMakeFiles/sql.dir/mysqld.cc.o
  8. 使用Python分析《我不是药神》豆瓣电影短评
  9. java 多线程 张孝祥_多线程11_张孝祥 java5的线程锁技术
  10. Paddle框架理解:模型状态、动态图与静态图、paddle.nn与paddle.nn.functional异同