我收到 Type Null is not allocate to to type Element

问题描述 投票:0回答:1
private _renderListOfLists(items : ISharePointList[]):void {
    let html : string = '';

    items.forEach((item:ISharePointList) => {
      html += `
      <ul class = "">
        <li class = ""><span class="ms-font-1">${item.ListTitle}</span></li>
        <li class = ""><span class="ms-font-1">${item.ListID}</span></li> 
      </ul>
      `;
      }
    );

    const listsPlaceholder : Element = this.domElement.querySelector('#SPListPlaceHolder');
    listsPlaceholder.innerHTML = html;

}

我收到以下错误消息:

输入“元素| null' 不可分配给类型“Element”。 类型“null”不可分配给类型“Element”.ts(2322) const 列表占位符:元素

有人可以帮忙吗?

我不确定为什么会收到语法错误消息

typescript sharepoint-online spfx
1个回答
0
投票
如果没有找到元素,

querySelector
可能会返回
null

如果您确定该元素存在,您可以使用

as
:

断言该类型
const listsPlaceholder = this.domElement.querySelector('#SPListPlaceHolder') as Element;

否则,您必须在 TypeScript 允许您将该值用作

Element
之前进行检查。

const listsPlaceholder = this.domElement.querySelector('#SPListPlaceHolder');
if (listsPlaceholder === null) throw new Error('placeholder element not found')
listsPlaceholder.innerHTML = html;
© www.soinside.com 2019 - 2024. All rights reserved.