打字稿编译错误:类型“节点”上不存在属性“classList”

dan*_*dan 10 typescript typescript1.5

视窗 7 x64

使用打字稿 1.5 测试版使用 gulp-typescript 2.7.7 进行编译

获取错误:由于声明,类型“节点”上不存在属性“classList” 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 文件中需要报告的错误?

Emo*_*mon 10

当我想更新第一个孩子的 classList 时,我遇到了同样的问题。

我的解决方案是

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


bas*_*rat 7

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

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

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