我可以获取数组中所有函数的返回类型吗?

我正在使用 Redux 和 typesafe-actions,我想获得一个类型,我可以用它在我的减速器中对action参数进行注释,以获得action.type.

目前我的设置是这样的:

我使用 typesafe-actions 定义了我的操作:

export const increment = (amount: number) => action("INCREMENT", { amount });
export const decrement = (amount: number) => action("DECREMENT", { amount });

然后我可以像这样得到我想要的类型:

export type CounterActions = ReturnType<typeof increment | typeof decrement>;

然而,这并不是理想的可维护性,因为每次我添加一个新动作时,我都必须记住将它添加到 CounterActions 类型中。

所以我的想法是将我所有的动作创建器函数放在一个数组中:

export const actions = [
    (amount: number) => action("INCREMENT", { amount }),
    (amount: number) => action("DECREMENT", { amount })
]

然后type CounterActions以某种方式“传播”数组这是我卡住的地方,因为我无法正确使用语法。

有任何想法吗?

尼古拉斯大厦

typesafe-actions 有一个名为ActionType的辅助类型,如果您有操作的映射对象,它将为您执行该联合。最简单的方法是在另一个文件中使用import *. 例如:

import { ActionType } from 'typesafe-actions'
import * as counterActions from 'insert/filepath/here'

export type CounterActions = ActionType<typeof counterActions>;

在我的应用程序中,我们在 RootAction 的文件中执行此操作,该文件仅包含我们在整个应用程序中创建的所有操作。所以文件看起来像:

import * as fooActions from './foo/actions'
import * as barActions from './bar/actions'
// etc

export type RootAction = 
  ActionType<typeof fooActions>
  | ActionType<typeof barActions>
  // etc

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我可以从签名中获取函数的返回类型吗?

来自分类Dev

我可以一次检查Java数组中所有对象的实例化吗?

来自分类Dev

对于大量记录,我可以获取 Cosmos DB 表中所有记录的计数吗?

来自分类Dev

Rails获取数组中所有对象的类型

来自分类Dev

我可以获取foursquare API可以返回给我的所有类别的列表吗?

来自分类Dev

我们可以一次更改Excel中所有命名引用的数组范围吗?

来自分类Dev

我可以编写返回函数的函数类型吗?

来自分类Dev

我可以从带有类型谓词的函数中返回`void`吗?

来自分类Dev

“ =”函数适用于所有类型,我可以从哪里显式获取它?

来自分类Dev

函数可以返回类型吗?

来自分类Dev

我可以使C函数返回任意类型吗?

来自分类Dev

我可以为函数的返回类型加上别名吗

来自分类Dev

获取数组中所有单位的值

来自分类Dev

获取数组中所有元素的ID

来自分类Dev

auto function()”在函数体内可以有几种返回类型吗?

来自分类Dev

是否可以获取Project集合中所有Workitem类型的列表?

来自分类Dev

编写一个返回数组中所有回文数总和的函数

来自分类Dev

使用Express,我可以自动修剪req.body中所有传入的POST字段吗?

来自分类Dev

我可以更改Swift应用程序中所有按钮的属性吗?

来自分类Dev

我可以重载带有类型特征的函数吗?

来自分类Dev

我可以重载带有类型特征的函数吗?

来自分类Dev

我可以获取网站引用的所有程序集吗

来自分类Dev

我可以获取python对象的所有方法吗?

来自分类Dev

选择表 A 中所有行连接表 B 的帐号,但排除 tableB.foo == bar 的行。我可以在一次查询中获取此数据集吗?

来自分类Dev

我可以使用其他函数的类型信息作为Python中的返回类型吗?

来自分类Dev

我可以在返回类型指针的函数中返回变量的地址吗?

来自分类Dev

如何查找Javadoc中所有返回类型的方法?

来自分类Dev

显示数组中所有元素的数据类型

来自分类Dev

转换数组中所有对象的属性的数据类型

Related 相关文章

  1. 1

    我可以从签名中获取函数的返回类型吗?

  2. 2

    我可以一次检查Java数组中所有对象的实例化吗?

  3. 3

    对于大量记录,我可以获取 Cosmos DB 表中所有记录的计数吗?

  4. 4

    Rails获取数组中所有对象的类型

  5. 5

    我可以获取foursquare API可以返回给我的所有类别的列表吗?

  6. 6

    我们可以一次更改Excel中所有命名引用的数组范围吗?

  7. 7

    我可以编写返回函数的函数类型吗?

  8. 8

    我可以从带有类型谓词的函数中返回`void`吗?

  9. 9

    “ =”函数适用于所有类型,我可以从哪里显式获取它?

  10. 10

    函数可以返回类型吗?

  11. 11

    我可以使C函数返回任意类型吗?

  12. 12

    我可以为函数的返回类型加上别名吗

  13. 13

    获取数组中所有单位的值

  14. 14

    获取数组中所有元素的ID

  15. 15

    auto function()”在函数体内可以有几种返回类型吗?

  16. 16

    是否可以获取Project集合中所有Workitem类型的列表?

  17. 17

    编写一个返回数组中所有回文数总和的函数

  18. 18

    使用Express,我可以自动修剪req.body中所有传入的POST字段吗?

  19. 19

    我可以更改Swift应用程序中所有按钮的属性吗?

  20. 20

    我可以重载带有类型特征的函数吗?

  21. 21

    我可以重载带有类型特征的函数吗?

  22. 22

    我可以获取网站引用的所有程序集吗

  23. 23

    我可以获取python对象的所有方法吗?

  24. 24

    选择表 A 中所有行连接表 B 的帐号,但排除 tableB.foo == bar 的行。我可以在一次查询中获取此数据集吗?

  25. 25

    我可以使用其他函数的类型信息作为Python中的返回类型吗?

  26. 26

    我可以在返回类型指针的函数中返回变量的地址吗?

  27. 27

    如何查找Javadoc中所有返回类型的方法?

  28. 28

    显示数组中所有元素的数据类型

  29. 29

    转换数组中所有对象的属性的数据类型

热门标签

归档