03_TypeScript函数
1、函数的定义
es5定义函数的方法
//函数声明法 function run(){ return 'run'; } //函数表达式 var run = function(){ return 'run2'; }
ts中定义函数的方法
//函数声明法(返回值为string) function run():string{ return 'run'; } //函数表达式(返回值为numbet) var run = function():number{ return 123; } //没有返回值的方法 function run():void{ console.log('run') }
ts中定义方法传参(参数需要定义数据类型)
//函数声明法 function getInfo(name:string,age:number):string{ return `${name} --- ${age}`; } //函数表达式 var getInfo = function(name:string,age:number):string{ return `${name} --- ${age}`; }
2、可选参数
//可选参数后加问号,可选参数必须配置到参数的最后面 function getInfo(name:string,age?:number):string{ if(age){ return `${name} --- ${age}`; }else{ return `${name}`; } } //age 这个参数可传可不传 getInfo('zhangsan') getInfo('zhangsan',123)
3、默认参数
function run(name:string,age:number=20):string{ return `${name}---${age}`; }
4、剩余参数(...)
function sum(...result:number[]):number{ var sum = 0; for(var i=0;i<result.length;i++){ sum+=result[i]; } return sum; } alert(sum(1,2,3,4))
5、函数重载
java中方法重载:重载指的是俩个或者俩个以上同名函数,但他们的参数不一样,这时候会出现重载的情况。
typescript中重载:通过为同一个函数提供多个函数类型定义来试下多种功能的目的。
function getInfo(name:string):string; function getInfo(age:number):number; function getInfo(str:any):any{ if(typeof str==='string'){ return '我叫:'+ str }else{ return '年龄:'+ str } } getInfo('张三') getInfo(20)