首页 > 其他分享 >TypeScript 函数重载

TypeScript 函数重载

时间:2022-09-22 00:55:19浏览次数:90  
标签:TypeScript return reverse number 文档 重载 string 函数

函数参数的类型可以使用联合类型?,让我们传递的值可以有多种类型的情况。下面是写的一个简单函数,参数 x 可以有 number、string 两种类型,返回值也是。

function reverse(x: number | string): number | string {
  if (typeof x === "number") {
    return Number(x.toString().split("").reverse().join(""));
  } else if (typeof x === "string") {
    return x.split("").reverse().join("");
  } else {
    return x;
  }
}

调用时不看源码的文档,直接鼠标悬浮在函数上快速地浏览说明文档:

image

传递的是 string 类型的字符串,但给出的文档还需要我们猜测,因此,使用函数重载,结果又是怎么样的呢?

/**
 * 输入数字 123 的时候,输出反转的数字 321
 * @param x number
 */
function reverse(x: number): number;
/**
 * 输入字符串 'hello' 的时候,输出反转的字符串 'olleh'
 * @param x string
 */
function reverse(x: string): string;
function reverse(x: number | string): number | string {
  if (typeof x === "number") {
    return Number(x.toString().split("").reverse().join(""));
  } else if (typeof x === "string") {
    return x.split("").reverse().join("");
  } else {
    return x;
  }
}

给每一个联合类型都提供一个重载函数,函数的具体实现还是由第三个函数中(联合类型)来。每一个重载函数都有一份说明文档,根据传递的参数类型,匹配对应的说明文档:

image
image

这样的好处就是,以后遇到了函数的参数存在联合类型的情况下,避免日后快速查看说明文档而疑惑。

标签:TypeScript,return,reverse,number,文档,重载,string,函数
From: https://www.cnblogs.com/Enziandom/p/16717775.html

相关文章

  • Python之numpy库(二)-函数
    1.算术函数  如果参与运算的两个对象都是ndarray,并且形状相同,那么会对位彼此之间进行(+-*/)运算。NumPy算术函数包含简单的加减乘除:add(),subtract(),multiply()......
  • T1051 分段函数(信息学一本通C++)
     目录 [题目描述]编写程序,计算下列分段函数y=f(x)的值。 y=-x+2.5;0<=x<5 y=2-1.5(x-3)(x-3);5<=x<10 y=x/2-1.5;10<=x<20[输入]一个浮点数N......
  • 运算符重载
    运算符重载一、加号重载运算符-实现两个自定义数据进行相加classPerson{public:Person(){};Person(inta,intb){this->m_A=a;......
  • Typescript类型体操 - PartialRequired
    题目中文实现一个通用的RequiredByKeys<T,K>,它接收两个类型参数T和K。K指定应设为必选的T的属性集。当没有提供K时,它就和普通的Required<T>一样使所有的属性成为必选的......
  • 有关损失函数推导
    损失函数推导线性回归首先损失函数是为了衡量模型预测的数据与真实数据之间的区别,那么问题来了为什么是平方损失,而不是绝对值损失,四次方损失。一个很浅显的理解:二次方简......
  • 逻辑回归函数
    SigmoidFunctionLogisticFunction:\(S(x)=\frac{1}{1+e^{-x}}\)(\(S(0)=\frac{1}{1+1}=0.5\))Hyperbolictangent\(f(x)=tanh(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}}\)......
  • const修饰成员函数,常函数,常对象
    设计关键字:const、mutable常函数:-成员函数后面加const,就是常函数-常函数里面不能修改成员变量的值-成员变量加mutable修饰,在常函数中可以修改 常对象:-声明对象......
  • 【SQL 编程你也行】SQL Server 2012新功能之函数:转换函数
    在SQLServer2012中,新增了几个转换函数,用于支持数据类型的强制转化。由于之前主要用的是SQLServer2008R2,而公司的项目为了提高开发效率,很多表的列都为varchar类型,但也......
  • MySQL索引查询条件使用函数导致索引失效
     索引失效EXPLAINSELECTdt.nameASdeviceName,su.`name`ASuserName,date_format(co.upload_time,'%Y%m%d')astimeFROMtb_cust_ordercoI......
  • 寄存器与函数栈帧
    每一个函数独占自己的栈帧空间。当前正在运行的函数的栈帧总是在栈顶。Win32系统提供两个特殊的寄存器用于标识位于系统栈顶端的栈帧。(1)ESP:栈指针寄存器(extendedstackp......