【发布时间】:2021-09-09 18:54:29
【问题描述】:
我在尝试使用 popper 组件时遇到以下错误,只是在努力理解如何正确键入它。文档不清楚,我也没有太多 Typescript 经验。
'Element | 类型的参数null' 不可分配给“元素 |”类型的参数虚拟元素'。 类型 'null' 不能分配给类型 'Element |虚拟元素'.ts(2345) 常量爆米花:元素 |空
const popcorn = document.querySelector('#popcorn')
const tooltip = document.querySelector('#tooltip')
createPopper(popcorn, tooltip, {
placement: 'top',
})
【问题讨论】:
-
由于您使用
querySelector()搜索的元素可能不存在(就编译器 而言),它的返回类型自然是Element | null而不仅仅是Element。而且,createPopper()显然不接受 null 参数,因此它不会接受可能为 null 的Element | null。如果你确定元素存在,那么你可以在第一行和第二行使用the non-null assertion operator,这会将类型强制转换为Element。
标签: reactjs typescript