函数重载 overload
有一些编程语言(eg:java)允许不同的函数参数,对应不同的函数实现。但是,JavaScript 函数只能有一个实现,必须在这个实现当中,处理不同的参数。因此,函数体内部就需要判断参数的类型及个数,并根据判断结果执行不同的操作。
function reverse(str:string):string;
function reverse(arr:any[]):any[];
function reverse(stringOrArray:string|any[]
):string|any[] {if (typeof stringOrArray === 'string')return stringOrArray.split('').reverse().join('');elsereturn stringOrArray.slice().reverse();
}
this 在函数上的类型注解
AssignAblity of function
当定义一个函数类型的返回类型是 void 时,那不是意味着不能返回值,而是这些值会被忽视。
但是在一个函数字面量声明返回类型是 void时,那不能返回任何值