Typescript compile error: Property 'classList' does not exist on type 'Node'

Typescript compile error: Property 'classList' does not exist on type 'Node'

Windows 7 x64

使用 gulp-typescript 2.7.7 使用 typescript 1.5 beta 进行编译

出现错误:属性 'classList' 在类型 'Node' 上不存在,因为声明 document.getElementsByClassName('left-aside-wrapper')[0].classList.toggle('isOpen');

我看到 classList 在 lib.d.ts 文件中定义为 interface Element extends Node, GlobalEventHandlers, ElementTraversal, NodeSelector, ChildNode { classList: DOMTokenList;

不太熟悉 d.ts 文件的工作原理,所以这是我的错误还是需要报告的 d.ts 文件中的错误?

这是因为 getElementsByClassName 被定义为 return Node 数组而不是 Element 数组。

Not all that familiar with how d.ts files work so is this my error or is it a bug in the d.ts file that need to be reported

基于https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName,我会将其报告为错误。

我想更新拳头的类列表时遇到了同样的问题child。

我的解决方案是

const element = document.getElementById('testId').firstChild as HTMLElement;

使用 firstElementChild 代替 firstChild(即代替 getElementsByClassName('')[0]

所以

document.getElementsByClassName('left-aside-wrapper').firstElementChild.classList.toggle('isOpen')