创建键盘导航,并面临以下问题:

let currentActive = document.activeElement;
if (e.key === "ArrowLeft") {
  currentActive.previousElementSibling.focus();
}


该代码可以正常工作,但是TypeScript抱怨Property 'focus' does not exist on 'Element'?-currentActive<img />标记。

我试图通过这样做将currentActive分配为HTMLElement:
let currentActive = document.activeElement as HTMLCollectionOf<HTMLElement>,但似乎并不喜欢。

我想念什么?

最佳答案

您需要使TS确信currentActive.previousElementSiblingHTMLElement类型。

作为奖励,我建议您说服自己,避免在控制台中出现一些红叉。也许与currentActive.previousElementSibling.focus && currentActive.previousElementSibling.focus();相似

10-01 05:19