redux-toolkit createAction() 打字稿中的类型定义

redux-toolkit createAction() type definition in typescript

我最近正在探索 redux-toolkit 库,但在 createAction 函数的类型声明方面遇到困难,如下所示。


createAction returns 具有 <ReturnType<PA>['payload'], T, PA> 泛型的 PayloadActionCreator。但是,ReturnType<PA>['payload']是什么意思?

export declare function createAction<PA extends PrepareAction<any>, T extends string = string>(type: T, prepareAction: PA): PayloadActionCreator<ReturnType<PA>['payload'], T, PA>

ReturnType<PA>['payload'] 表示 prepare 函数返回的对象的 payload 属性 - 因为这是 prepare 表示法的签名。

不过,这应该与您无关。通常的用法是const actionCreator = createAction<PayloadType>('some/action/type').

另一种表示法是准备表示法,格式为 createAction('some/action/type', (payload: string) => ({ payload, meta: {something: "foo"}})

一般情况下,请参考the API documentation,几乎所有的TypeScript用法示例。 你真的不应该写比现在更多的类型。 (是的,类型不多,这就是重点;))