typescript Remix V2 -如何正确键入useLoaderData

lmvvr0a8  于 12个月前  发布在  TypeScript
关注(0)|答案(1)|浏览(104)

我找到的大多数关于如何正确输入useLoaderData的例子都是这样的

export const loader = async () => {
   return json({ messages: [...] })

}

// In component...
const { messages } = useLoaderData<typeof loader>

但是,从V2开始,useLoaderData的类型如下所示

export declare function useLoaderData(): unknown;

我们不能再通过泛型了。令人惊讶的是,我找不到一页提到这一重大变化。那么,获得类型安全的最佳方法是什么呢?我如何告诉TypeScript消息实际上存在于响应中,而不必硬编码类型本身并使用as的丑陋转换?
谢谢你,谢谢!

8fsztsew

8fsztsew1#

我找到答案了!我的IDE默认情况下从react-router而不是@remix-run/react导入useLoaderData。它甚至没有建议我正确的包,这就是为什么我没有意识到这一点。我又看了一遍changelog,我注意到了区别!

相关问题