当我在 TypeScript 中收到"Object is possibly null"错误时,我到底应该怎么做?



在我的tsconfig.json文件的compilerOptions对象中,我将strictNullChecks选项设置为true

有时,当我使用getElementById("...")querySelector("...")等函数时,我会收到以下(非致命(错误:

TS2531:对象可能为"空">

我知道为什么我会收到此错误(有时元素尚未加载或找不到(,但是当我收到此错误时,我到底应该怎么做?

将使用该元素的代码放在if条件中是否合适,如下所示:

let divs: HTMLElement | null = document.getElementById("div");
if(divs !== null) {
  // do stuff with divs...
}

还是我应该做点别的事情?

谢谢。

将使用该元素的代码放在 if 条件中是否合适

是的。正如你所说,有时元素不存在,所以你会null.检查它是适当的。

如果您需要在知道元素存在的情况下使用 getElementByIdquerySelector,您可以给自己一个帮助函数,该函数抛出而不是返回null

function getGuaranteed(id: string): HTMLElement {
    const el = document.getElementById(id);
    if (el == null) {
        throw new Error("Element #" + id + " not found.");
    }
    return el as HTMLElement;
}

。并在您知道元素将存在的情况下使用它。

相关内容

  • 没有找到相关文章

最新更新