首页 > 解决方案 > 如何解决 setAttribute() 函数中“布尔”类型的参数不可分配给“字符串”类型的参数错误

问题描述

我有一个将 HTMLaria-expanded属性动态更新为 true 或 false 的函数。但是,当我输入elementas时HTMLElement,我收到一个Argument of type 'boolean' is not assignable to parameter of type 'string'

  expandEotyDocumentsPanel(element: HTMLElement) {
    this.eotyExpanded = !this.eotyExpanded;
    element.setAttribute('aria-expanded', this.eotyExpanded);
  }

您可能已经注意到,this.eotyExpanded是一个布尔值。

关于 的第二个参数, MDNsetAttribute()上的文档说:

包含要分配给属性的值的 DOMString。指定的任何非字符串值都会自动转换为字符串。

所以我认为提供一个布尔值就可以了。

我怎样才能抑制这个错误?

谢谢。

标签: javascriptangulartypescript

解决方案


元素的属性不能是布尔值,所以你可能只是把它变成字符串而不是

new Boolean(this.eotyExpanded).toString()


推荐阅读