使用TypeScript设置HtmleElement
我正在将我的旧JavaScript转换为TypeScript。我有一个目录JSX组件,可以轻松滚动到特定的标题 我使用函数查找滚动到指定标题所需的总滚动偏移量。将此文件转换为“.tsx”文件后,出现错误: 类型“Element”缺少类型“HtmleElement”中的以下属性:accessKey、accessKeyLabel、autocapitalize、dir等使用TypeScript设置HtmleElement,typescript,Typescript,我正在将我的旧JavaScript转换为TypeScript。我有一个目录JSX组件,可以轻松滚动到特定的标题 我使用函数查找滚动到指定标题所需的总滚动偏移量。将此文件转换为“.tsx”文件后,出现错误: 类型“Element”缺少类型“HtmleElement”中的以下属性:accessKey、accessKeyLabel、autocapitalize、dir等 如何设置传递给累加器offsettop的参数类型?由于el.offsetParent属于元素| null类型,而不是HTMLElem
如何设置传递给
累加器offsettop
的参数类型?由于el.offsetParent
属于元素| null
类型,而不是HTMLElement | null
类型,因此引发错误。默认情况下,el.offsetParent
不返回HTMLElement
的原因是,el.offsetParent
也可能导致不同类型的元素,例如SVGElement
()。您必须在此处使用,并可能确保返回的值是HTMLElement
(如果需要)。由于el.offsetParent
的类型为Element | null
而不是HTMLElement | null
而引发错误。默认情况下,el.offsetParent
不返回HTMLElement
的原因是,el.offsetParent
也可能导致不同类型的元素,例如SVGElement
()。您必须在此处使用,如果需要,可能需要确保返回的值是HTMLElement
。我最后得到的答案使用类型断言
const accumulateOffsetTop = ( el: HTMLElement, totalOffset = 0 ) : number => {
while ( el ) {
totalOffset += el.offsetTop - el.scrollTop + el.clientTop
el = el.offsetParent as HTMLElement
}
return totalOffset
}
我得到的答案是使用类型断言
const accumulateOffsetTop = ( el: HTMLElement, totalOffset = 0 ) : number => {
while ( el ) {
totalOffset += el.offsetTop - el.scrollTop + el.clientTop
el = el.offsetParent as HTMLElement
}
return totalOffset
}
当我记录传递给函数的值时,它们是我希望在TOC中使用的头。如何断言它们是元素?当我记录传递给函数的值时,它们是我希望在TOC中使用的头。如何断言它们是元素?
const accumulateOffsetTop = ( el: HTMLElement, totalOffset = 0 ) : number => {
while ( el ) {
totalOffset += el.offsetTop - el.scrollTop + el.clientTop
el = el.offsetParent as HTMLElement
}
return totalOffset
}