用于告诉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>
,这意味着它可以是一个 number
或 undefined
,
当你尝试将 goods_id.value
传递给 goodsApi.stock
方法时,TypeScript 报错,因为它不能确定 goods_id.value
的值是否为 undefined
。
为了解决这个问题,可以使用 !(非空断言)
,如下:
goodsApi.stock({ goods_id: goods_id.value! })
在这里,!
符号告诉 TypeScript,你确定 goods_id.value
不会是 undefined
,因此可以安全地将其传递给 goodsApi.stock
方法。