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用法示例。
你真的不应该写比现在更多的类型。 (是的,类型不多,这就是重点;))
我最近正在探索 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用法示例。 你真的不应该写比现在更多的类型。 (是的,类型不多,这就是重点;))