TypeScript学习: 三、TypeScript 中的函数

TypeScript学习: 三、TypeScript 中的函数

  ES5的函数定义

// 匿名函数
var run1 = function() {

}
// 函数声明
function run2() {

}

 typeScript

// 返回类型需要定义,定义了返回number类型,函数的返回也必须是该number类型
function run():number{
    return 123;
}
// 参数类型也是一样,必须定义类型
function run(a:number, b:number):number{
    let c = a + b;
    return c;
}

 typeScript会验证你定义函数的参数类型,和返回类型

没有返回值

      

function run(a:number|string, b:number):void{
    let c = `a参数${a} --- b参数${b}`;
}
run(1,2);

方法可选参数

  ES5 中 方法的实参和行参可以不一样, 但是TS中必须一样,如果不一样,就需要配置,可选参数,添加一个问号

       

 默认参数,在ES5中无法设置默认参数,在ES6和typeScript才可以设置默认参数

  默认参数必须配置到参数的最后面,可选参数也是一样

给参数b指定默认值10

     

剩余参数

  比如要算几个数字的和

如果要算的数字和,比较多,那么,函数的参数就需要很多个,如果要算的数字有多少个,我们不知道,这时可以使用剩余参数方法,三点运算符

剩余参数,还可以添加其他参数

函数重载

javaScript 中没有函数重载的说法,如果出现函数名一样方法,后面定义的会覆盖前面的

java 中方法重载,指 两个或者两个以上的同名函数,但函数之间的参数不一样,赋予不同的参数就会调用不同的方法实现不同功能,实现了方法重载

TypeScript 中的重载和java的类似, 通过同一个函数提供多个函数类型定义来实现多种功能,方法重载让JavaScript语言更走向面向对象

TypeScript 的重载为了兼容ES5和ES6 和java 使用区别的

参数个数不同的写法,使用可选参数符号实现

 错误写法

 箭头函数, ES6写法

// ES5写法
setTimeout(function() {
    console.log("run");
}, 1000)
// ES6写法
setTimeout(() => {
    console.log("run");
}, 1000)

// 箭头函数this指向问题: 箭头函数里面的this指向上下文
原文地址:https://www.cnblogs.com/yangWanSheng/p/15025545.html