一、ts 中的函数定义

1. 函数声明法

function run():string {
    return 'str';
}

2. 匿名函数

var run = function():number {
    return 123;
}

二、ts 中定义方法传参

var run = function (name:string, age:number):string {
    return `${name} -- ${age}`; 
};
console.log(run(
'张三', 24));
  • 1. 方法可选参数

           es5 中方法的实参和形参,可以不一样,但是 ts 中不行,需要配置可选参数

           注:可选参数必须配置到参数的最后面

var run = function(name:string,age?:number):string {
    if (age) {
        return `${name} -- ${age}`;
    } else {
        return `${name} -- 年龄保密`;
    }
    
}
console.log(run('猴子',22))
console.log(run('玛雅'))

  2. 默认参数

var run = function(name:string, age:number=123) {
    return `${name} -- ${age}`;
}
console.log(run('玛雅'))

 3. 剩余参数

   使用三点运算符接收多个参数

var run = function(...rest:number[]):number {
    var sum = 0
    rest.forEach(item => {
        sum += item
    })
    console.log(sum)
    return sum
}
run(1,2,3,4,5)

三、函数重载

  java 中方法的重载: 重载指的是两个或者两个以上同名函数,但它们的参数不一样,这时会出现函数重载的情况。

  typescript 中的重载:通过为同一个函数提供多个函数类型定义来实现多种功能的目的。

  ts 为了兼容 es5 和 es6,重载的写法与 java 有区别。

  es5 中如果出现同名方法,下面的会替换上面的方法。

  

function getInfo(name:string):string;
function getInfo(age:number):string;
function getInfo(str:any):any {
    if (typeof str === 'string') {
        return `我叫${str}`
    } else {
        return `我的年龄是${str}`
    }
}
alert(getInfo('张胜男')) // 正确写法
alert(getInfo(123)) // 正确写法
alert(getInfo(true)) // 错误写法

Typescript 中的函数_java