非空断言,不能将类型“number | undefined”分配给类型“number”

发布时间:2024年01月16日
非空断言

用于告诉TypeScript编译器,一个变量一定不为空或未定义,从而避免TypeScript报告关于可能为空的警告或错误,

它可以放在变量的最后,也可以放在属性或方法调用的最后。

例如:
	// 我知道 getElementById 不会返回空,因此在这使用非空断言
	const element = document.getElementById('myElement')!
	element.classList.add('highlight')

例子

let goods_id = ref<number>()

goodsApi.stock({goods_id: goods_id.value})

TS报错:不能将类型“number | undefined”分配给类型“number”

这个问题是常见的 TypeScript 错误,

问题在于 goods_id 的类型是 Ref<number>,这意味着它可以是一个 numberundefined

当你尝试将 goods_id.value 传递给 goodsApi.stock 方法时,TypeScript 报错,因为它不能确定 goods_id.value 的值是否为 undefined

为了解决这个问题,可以使用 !(非空断言),如下:


goodsApi.stock({ goods_id: goods_id.value! })

在这里,!符号告诉 TypeScript,你确定 goods_id.value 不会是 undefined,因此可以安全地将其传递给 goodsApi.stock 方法。

文章来源:https://blog.csdn.net/pig_ning/article/details/135631563
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。