如何在Arrow函数中使用Typescript泛型添加两个参数

阿吉比

例如我在.tsx file扩展中有此代码

const Add = <T,>(arg0: T, arg1: T): T => arg0 + arg1;
const A = Add(1, 2);
const B = Add('1', '2')

我的问题是有一个错误说:

Operator '+' cannot be applied to types 'T' and 'T'.ts(2365)

是否有解决方法,如何在带有泛型的Arrow函数中使用它

卡兹

好吧,首先,您想将泛型约束到您实际打算与+运算符一起使用的事物大概是stringnumber然后,这仍然会失败,因为编译器会讨厌add string | number更糟的是,限制一个泛型参数,延长string | number将导致编译器来解释输入的任何一个字符串文字数字字符类型,你不想要的返回类型Add(1, 2)1 | 2

最简单的解决方法是使用一个类型断言条件类型的回报,这拓宽了结果要么stringnumberstring | number

const Add = <T extends string | number>(
    arg0: T, arg1: T
): T extends string ? string : number => arg0 as any + arg1;

const A = Add(1, 2); // number
const B = Add('1', '2') // string
Add(1, "2"); // compile error
Add("1", 2); // compile error
const C = Add(Math.random() < 0.5 ? 1 : "1", Math.random() < 0.5 ? 2 : "2"); // string | number

好吧,希望能有所帮助;祝好运!

操场上的代码链接

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使泛型对象使用在Typescript中使用一个类型或void的两个函数的函数参数

来自分类Dev

如何在Typescript中使用具有参数value或value []的两个参数编写泛型函数

来自分类Dev

如何在函数调用中使用Typescript泛型类构造函数作为参数

来自分类Dev

传递两个泛型作为函数参数

来自分类Dev

如何在python的groupby函数中使用带有两个参数的用户定义函数

来自分类Dev

如何在Swift中使用两个闭包作为参数来创建函数?

来自分类Dev

如何在Mathematica中使用两个参数将Map []应用于函数?

来自分类Dev

如何在Angular中使用两个构造函数

来自分类Dev

如何在 F# 中使用带有两个参数的函数,这些参数是整数的二维数组

来自分类Dev

如何在TypeScript中使用泛型在重载函数中进行类型转换

来自分类Dev

如何在泛型参数中使用Java Reflection

来自分类Dev

如何在方法参数中使用泛型类型投影?

来自分类Dev

如何在类中使用Comparable作为泛型参数

来自分类Dev

如何在参数需要类中使用泛型

来自分类Dev

如何在TypeScript中使用泛型检测类实例

来自分类Dev

如何编写一个特征绑定以添加两个泛型类型的引用?

来自分类Dev

如何在一个函数中使用两个不同的作用域“ this”?

来自分类Dev

如何在同一个jQuery函数中使用两个追加?

来自分类常见问题

如何检查两个结构在Swift中是否具有相同的泛型参数类型?

来自分类Dev

如何检查两个结构在Swift中是否具有相同的泛型参数类型?

来自分类Dev

为什么不能对两个泛型类型参数使用协方差?

来自分类Dev

为什么不能对两个泛型类型参数使用协方差?

来自分类Dev

如何在OpenAPI 3.0中使用两个可选参数定义路径?

来自分类Dev

如何在Python中使用熊猫基于两个参数对记录进行分组

来自分类Dev

如何在SQL中使用两个相似的参数执行搜索功能

来自分类Dev

如何在MySQL中使用两个标签参数过滤结果?

来自分类Dev

如何在qt中使用带有两个参数的qDebug()?

来自分类Dev

如何在Python中使用getopt解析选项后的两个或多个参数?

来自分类Dev

如何在python类方法中使用两个参数

Related 相关文章

  1. 1

    如何使泛型对象使用在Typescript中使用一个类型或void的两个函数的函数参数

  2. 2

    如何在Typescript中使用具有参数value或value []的两个参数编写泛型函数

  3. 3

    如何在函数调用中使用Typescript泛型类构造函数作为参数

  4. 4

    传递两个泛型作为函数参数

  5. 5

    如何在python的groupby函数中使用带有两个参数的用户定义函数

  6. 6

    如何在Swift中使用两个闭包作为参数来创建函数?

  7. 7

    如何在Mathematica中使用两个参数将Map []应用于函数?

  8. 8

    如何在Angular中使用两个构造函数

  9. 9

    如何在 F# 中使用带有两个参数的函数,这些参数是整数的二维数组

  10. 10

    如何在TypeScript中使用泛型在重载函数中进行类型转换

  11. 11

    如何在泛型参数中使用Java Reflection

  12. 12

    如何在方法参数中使用泛型类型投影?

  13. 13

    如何在类中使用Comparable作为泛型参数

  14. 14

    如何在参数需要类中使用泛型

  15. 15

    如何在TypeScript中使用泛型检测类实例

  16. 16

    如何编写一个特征绑定以添加两个泛型类型的引用?

  17. 17

    如何在一个函数中使用两个不同的作用域“ this”?

  18. 18

    如何在同一个jQuery函数中使用两个追加?

  19. 19

    如何检查两个结构在Swift中是否具有相同的泛型参数类型?

  20. 20

    如何检查两个结构在Swift中是否具有相同的泛型参数类型?

  21. 21

    为什么不能对两个泛型类型参数使用协方差?

  22. 22

    为什么不能对两个泛型类型参数使用协方差?

  23. 23

    如何在OpenAPI 3.0中使用两个可选参数定义路径?

  24. 24

    如何在Python中使用熊猫基于两个参数对记录进行分组

  25. 25

    如何在SQL中使用两个相似的参数执行搜索功能

  26. 26

    如何在MySQL中使用两个标签参数过滤结果?

  27. 27

    如何在qt中使用带有两个参数的qDebug()?

  28. 28

    如何在Python中使用getopt解析选项后的两个或多个参数?

  29. 29

    如何在python类方法中使用两个参数

热门标签

归档