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')
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')