分享更有价值
被信任是一种快乐

TypeScript中如何写函数重载

文章页正文上

本篇内容介绍了“TypeScript中如何写函数重载”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!大多数函数接受一组固定的参数。但有些函数可以接受可变数量的参数,不同类型的参数,甚至可以根据你调用函数的方式返回不同的类型。为了注释这样的函数,TypeScript 提供了函数重载功能。我们先来考虑一个函数,它返回给一个特定的人的问候信息。上面的函数接受1个字符类型的参数:人的名字。调用该函数是非常简单的:如果你想让 greet()函数更加灵活,怎么办?例如,让它另外接受一个要问候的人的列表。这样的函数将接受一个字符串或字符串数组作为参数,并返回一个字符串或字符串数组。如何对这样的函数进行注释?有2种方法。第一种方法很简单,就是通过更新参数和返回类型直接修改函数签名。下面重构后greet()的样子:现在我们可以用两种方式调用 greet():直接更新函数签名以支持多种调用方式是一种常见的好方法。然而,在某些情况下,我们可能需要采用另一种方法,分别定义你的函数可以被调用的所有方式。这种方法被称为函数重载。第二种方法是使用函数重载功能。当函数签名相对复杂且涉及多种类型时,我推荐使用这种方法。定义函数重载需要定义重载签名和一个实现签名。重载签名定义函数的形参和返回类型,没有函数体。一个函数可以有多个重载签名:对应于调用该函数的不同方式。另一方面,实现签名还具有参数类型和返回类型,而且还有实现函数的主体,且只能有一个实现签名。greet() 函数有两个重载签名和一个实现签名。每个重载签名都描述了可以调用该函数的一种方式。就 greet()函数而言,我们可以用两种方式调用它:用一个字符串参数,或用一个字符串数组参数。实现签名 function greet(person: unknown): unknown { ... } 包含了该函数如何工作的适当逻辑。现在,和上面一样,可以用字符串或字符串数组类型的参数来调用 greet()2.1 重载签名是可调用的虽然实现签名实现了函数行为,但是它不能直接调用。只有重载签名是可调用的。在上面的示例中,即使实现签名接受unknown参数,也不能使用类型为 unknown (greet(someValue)) 的参数调用 greet() 函数。2.2 实现签名必须是通用的重载签名函数 greet(person: string[]): string[] 免费云主机、域名被标记为与greet(person: unknown): string不兼容。实现签名的 string 返回类型不够通用,不能与重载签名的 string[] 返回类型兼容。虽然在前面的例子中,函数重载被应用于一个普通函数。但是我们也可以重载一个方法在方法重载区间,重载签名和实现签名都是类的一部分了。例如,我们实现一个 Greeter类,有一个重载方法greet()Greeter 类包含 greet() 重载方法:2个重载签名描述如何调用该方法,以及包含正确实现的实现签名由于方法重载,我们可以用两种方式调用 hi.greet():使用一个字符串或使用一个字符串数组作为参数。函数重载,如果使用得当,可以大大增加可能以多种方式调用的函数的可用性。这在自动补全时特别有用:我们会在自动补全中列出所有可能的重载记录。然而,在某些情况下,建议不要使用函数重载,而应该使用函数签名。例如,不要对可选参数使用函数重载:在函数签名中使用可选参数是足够的:“TypeScript中如何写函数重载”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注云技术网站,小编将为大家输出更多高质量的实用文章!

相关推荐: CSS垂直居中的技巧有哪些

本篇内容主要讲解“CSS垂直居中的技巧有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CSS垂直居中的技巧有哪些”吧!适用情景:单行文字垂直居中技巧这个方式应该是最多人知道的了,常见于单行文字的应用,像是按钮这…

文章页内容下
赞(0) 打赏
版权声明:本站采用知识共享、学习交流,不允许用于商业用途;文章由发布者自行承担一切责任,与本站无关。
文章页正文下
文章页评论上

云服务器、web空间可免费试用

宝塔面板主机、支持php,mysql等,SSL部署;安全高速企业专供99.999%稳定,另有高防主机、不限制内容等类型,具体可咨询QQ:360163164,Tel同微信:18905205712

主机选购导航云服务器试用

登录

找回密码

注册