如何忽略或关闭此错误或使其成为警告而不是错误?
因此,我的应用程序将无法编译。
This comparison appears to be unintentional because the types '"error" | "success" | "pending"' and '"loading"' have no overlap.ts(2367)
或
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>
);
}
类似但不一样的帖子这里。
我的目标是在页面加载或发送消息时使用加载程序。
如何忽略或关闭此错误或使其成为警告而不是错误?
您可以通过添加
@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>
);