如何关闭错误 TS2367:这种比较似乎是无意的,因为类型“error” | “成功”和“加载”没有重叠

问题描述 投票:0回答:1

如何忽略或关闭此错误或使其成为警告而不是错误?

因此,我的应用程序将无法编译。

This comparison appears to be unintentional because the types '"error" | "success" | "pending"' and '"loading"' have no overlap.ts(2367)

单击this查看示例

  if (status === "loading") {
return (
  <div className="flex flex-col flex-1 justify-center items-center">
    <Loader2 className="h-7 w-7 text-zinc-500 animate-spin my-4" />
    <p className="text-xs text-zinc-500 dark:text-zinc-400">
      Loading messages...
    </p>
  </div>
);

}

类似但不一样的帖子这里

我的目标是在页面加载或发送消息时使用加载程序。

typescript
1个回答
0
投票

如何忽略或关闭此错误或使其成为警告而不是错误?

您可以通过添加

@ts-ignore
来禁用该检查,如下所示:

// @ts-ignore
if (status === "loading") {

所以,这就是您问题的答案,但是:您可能不应该这样做

编译器告诉您

status
的定义值为
"error"
"success"
:

TS2367:这种比较似乎是无意的,因为类型“错误” | “成功”和“加载”没有重叠

如果允许的值为“错误”和“成功”,为什么要检查

status
是否与其他内容匹配(“正在加载”)?这在你的代码中可能吗?

任何隐藏或禁用此编译器警告的技术都无法解决实际问题。从您发布的代码(复制在下面)来看,检查

status
是否具有值“loading”似乎是一个编程错误,因此
if
语句永远不会为真,因此
return
语句永远不会运行。

if (status === "loading") {
return (
  <div className="flex flex-col flex-1 justify-center items-center">
    <Loader2 className="h-7 w-7 text-zinc-500 animate-spin my-4" />
    <p className="text-xs text-zinc-500 dark:text-zinc-400">
      Loading messages...
    </p>
  </div>
);
© www.soinside.com 2019 - 2024. All rights reserved.