我试图获得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)
);
}, []);