React-Query mutation.error 未被识别为类型错误
React-Query mutation.error not recognized as type Error
使用 React-Query 突变时,我有一个显示错误消息的组件。但是 Typescript 无法将 mutation.error 属性 识别为类型 Error:
if (mutation.isError){
console.log(mutation.error.message); // Property 'message' does not exist on type 'unknown'.
console.log((mutation.error as Error).message); // works
}
如何通知 typescript mutation.error 确实是一个错误对象?
您必须向 useMutation
提供泛型:
useMutation<MyData, Error>
但我不会那样做。错误是未知的,因为在运行时,也可以抛出非错误对象。
我认为最简单的解决方案是执行 instanceof 检查而不是检查 isError:
if (mutation.error instanceof Error){
console.log(mutation.error.message);
}
这将正确缩小错误类型,以便 .message
可用
使用 React-Query 突变时,我有一个显示错误消息的组件。但是 Typescript 无法将 mutation.error 属性 识别为类型 Error:
if (mutation.isError){
console.log(mutation.error.message); // Property 'message' does not exist on type 'unknown'.
console.log((mutation.error as Error).message); // works
}
如何通知 typescript mutation.error 确实是一个错误对象?
您必须向 useMutation
提供泛型:
useMutation<MyData, Error>
但我不会那样做。错误是未知的,因为在运行时,也可以抛出非错误对象。
我认为最简单的解决方案是执行 instanceof 检查而不是检查 isError:
if (mutation.error instanceof Error){
console.log(mutation.error.message);
}
这将正确缩小错误类型,以便 .message
可用