typescript - 如果在创建变量期间设置联合的具体元素,则变量联合类型被忽略
问题描述
在写测试期间,我意外地为我捕获了类型错误。如果您能解释一下我在类型工作中的误解,我将不胜感激。
我为变量设置了具体的联合类型,类型可以为空,并设置初始值 - null,但之后我无法访问另一个联合元素
type DataType = { id: string } | null;
let data : DataType = null;
data?.id;
data?.id 显示为错误,打字稿认为哪些数据的类型为 null 而不是 DataType
对于数据确实为空的这种简单情况,这不是问题,但是会显示此错误,对于下一种情况
type DataType = { id: string } | null;
let data : DataType = null;
const fn = () => {
data = { id : 'test' }
}
fn();
data?.id
在这种情况下,数据已经等于 { id: 'test' }
如果修复了所有这些错误
let data: DataType = null as DataType;
但我不想使用运算符as
解决方案
推荐阅读
- opencart - Multimerch 8 未通过第三方结账向卖家发送订单通知
- mysql - 有没有办法按包含数字的字符串字段,按数字的值排序?
- reactjs - 使用类组件反应原生导航 5 身份验证流程
- linux - 为 DNAT Nftables 创建 Set 或 Vmap
- go - 有没有办法在golang中同时检查和更改某些文件编码类型?
- c# - 从 c# 源代码中删除未使用的函数
- flutter - Carousel_Slider 不会返回数据更改的初始页面
- javascript - 如何从对象树中删除数据
- python - Python:fernet 密钥错误/NameError:未定义名称“fernet”
- javascript - 如何更新图像的 src