函数函数声明#函数声明定义,需要给 函数参数,函数返回值 定义类型。function hello(name:string):void { console.log(name);}hello('zy'); // 传入字符串类型Copy函数表达式#用type关键字定义一个函数类型,再把声明的type给当前函数定义type GetName = (firstName: string, lastName:string)=>string; // 定义的类型// 把类型给函数let getName:GetName = function (firstName:string, lastName:string):string { return firstName + lastName;}getName('z','y')Copy可选参数#?:后为可选参数,可以不进行传参,也可以传参function print(name:string, age?:number):void { console.log(name,age);}print('zy');Copy默认参数#在参数后面写=,可以给参数一个默认值,与es6相同。function ajax(url:string, method:string = "GET") { console.log(url, method);}ajax('/');Copy剩余参数#通过...可以获得所有传入的参数。(与es6相同)function sum(...numbers:number[]) { console.log(numbers); // [1,2,3]}console.log(sum(1,2,3));Copy函数重载#两个或两个以上的同名函数,参数不一样,需要给同名函数提供多函数定义。function add(a:string, b:string):string;function add(a:number, b:number):number;function add(a,b) { return a + b;}add('a','b')add(1,2);Copy注意:函数实现要紧跟在声明之后,中间不可以用其他语句。function add(a:string, b:string):string;function add(a:number, b:number):number;console.log(123) // 错误,这样重载的定义将失去意义function add(a,b) { return a + b;}add('a','b')add(1,2);Copy