我正在尝试使用nextElementSibling
以编程方式将焦点移到表单中,但是我也正在使用Typescript并想输入变量/常量...
我没有输入并使用以下命令就成功了:
myFunct(event) {
const myEl = event.srcElement;
const nextElement = myEl.nextElementSibling;
if (nextElement) {
nextElement.focus();
}
}
但是,在代码上使用类型时,出现不一致和以下IntelliJ警告:
类型“元素”上不存在属性“焦点”
myFunct(event: KeyboardEvent) {
const myEl: Element = event.srcElement;
const nextElement: Element = myEl.nextElementSibling;
if (nextElement) {
nextElement.focus();
}
}
但是,根据 Mozilla
,我在谷歌搜索时发现nextElementSibling
的类型实际上应该是Element
有人可以帮忙吗?
更新:
看来KeyboardEvent
上的event
实际上是造成此问题的原因。
答案 0 :(得分:1)
从MDN开始:Element从其父元素Element继承属性,并从GlobalEventHandlers和TouchEventHandlers实现这些属性。
因此,您可以将代码更改为(使用typescriptlang.org测试的代码):
function myFunct(event: KeyboardEvent) {
const myEl = <HTMLElement>event.srcElement;
const nextElement = <HTMLElement>myEl.nextElementSibling;
if (nextElement) {
nextElement.focus();
}
}