javascript - 打字稿联合:类型“””上不存在属性“值”
问题描述
我有一个联合类型的接口,当我尝试访问该值时,它给了我错误。
这是我的界面:
interface DataItemI{
sys_id:string;
name:string;
parent:string|{value:string}
}
和数据集为:
const dataList:DataItemI[]=[
{
sys_id:'c1',
name:'p1-c1',
parent:{ value:'p1'}
},
{
sys_id:'p1',
name:'p1',
parent:''
},
{
sys_id:'c2',
name:'p1-c1',
parent:{ value:'p1'}
},
{
sys_id:'sc1',
name:'p1-c1-sc1',
parent:{ value:'c1'}
},
{
sys_id:'p2',
name:'p2',
parent:''
},
{
sys_id:'p2c1',
name:'p2-c1',
parent:{ value:'p2'}
},
];
现在我尝试遍历数组并获取父值(如果存在),否则默认值为root
dataList.forEach(dataItem=>{
key=dataItem?.parent?.value || 'root';
console.log(key);
});
但我收到错误:
Property 'value' does not exist on type '"" | { value: string; }'.
Property 'value' does not exist on type '""'.
58 key=dataItem?.parent?.value || 'root';
~~~~~
解决方案
推荐阅读
- docker - 如何在 Docker 中更改 Python 默认版本?
- python - PyQt5 在线编辑需要帮助
- javascript - React setState 未在 GET 请求上更新,有时有效
- android - Kotlin 中的 UICollectionViews?
- javascript - Highcharts 对系列数据进行排序并重绘
- git - 无法使用 ssh 使用 git 从 KIE 工作台克隆存储库
- c++ - C++ 内存过量使用 Linux
- excel - 有没有办法通过 Selenium VBA 和 HTML 表单元素登录?
- python - 即使存在,Python Web 抓取脚本也无法通过 xPath 找到元素
- openam - 如何让 OpenAM 通过简单的用户名和密码认证返回 jwt-token