从useQuery结果定义createSelector的类型



我试图获得createSelector res参数的正确类型,但我似乎无法从redux-js中找到正确的类型,因为在TypeScript中没有关于此用法的示例或解释,只有在JS中。

const selectFacts = React.useMemo(() => {
return createSelector(
(res) => res.data,
(data) => (data ? pick(data, facts_keys) : undefined)
);
}, []);
const { facts } = useGetProfileQuery(user?.email ?? skipToken, {
selectFromResult: (result) => ({
...result,
facts: selectFacts(result),
}),
});

如下所示:https://redux.js.org/tutorials/essentials/part-8-rtk-query-advanced#selecting-values-from-results

没有例子说明如何在TypeScript中完成这个,其他人已经遇到过这个了吗?

我最终结束了做类型断言,所以我不会被困在类型定义错误。但这并不理想,所以任何替代方案都是受欢迎的。

你不需要" full type ";类似的东西。只要说明你需要什么。

你的选择器只访问data,在你的应用程序的另一个点上,你定义了那个端点,所以你已经有了一个接口。

所以你可以直接输入

const selectFacts = React.useMemo(() => { 
return createSelector(
(res: { data: YourDataInterfaceOrType }) => res.data, 
(data) => (data ? pick(data, facts_keys) : undefined) 
); 
}, []);

相关内容

  • 没有找到相关文章

最新更新