什么是函数重载
简单来说,函数重载具有两个特征:名称相同,参数不同(参数类型、个数不同。)所以,函数重载的解释应该是具备不同参数的同名函数。注意:函数重载是多态的一种体现。
函数重载的声明和实现
TypeScript中,函数重载主要包括两部分:函数声明,和函数实现。函数声明主要是TSC解析的一种声明体现,实际编译中,并不会编译成具体代码。我们可以通过TypeScript的playground来查看。
1、参数不同的函数重载
加入我们有一个打印函数,可以打印输入的一个string信息,我们可以将函数声明如下:
// 函数声明
function print(info: string): void;
而还有另一种情况,就是输入的有可能是两个string类型的参数,我们都需要打印下来,于是我们的函数声明可以是这样:
// 函数声明
function print(info: string, message: string): void;
而当这两种声明,同时存在TypeScript的声明文件中,我们就需要用函数重载来实现,这是JavaScript没有的特性。
而实现函数重载的要求就是,我们要在一个更为宽泛的范围去实现函数重载,所以,TypeScript中的我们实现print函数如下:
// 在更宽泛的范围,我们用可选参数来实现重载
function print(info: string, message ?: string) {
let printValue: st