函数
1.js中的定义函数方法
// 1.定义方法// es5function test(){ return 'sss'}// 匿名函数let test1=function(){ return 'sss'}let test2=()=>{ return '111'}
2.ts中的定义函数方法
// 2.ts定义function run():string{ return "444"}//匿名函数let fun=function():number{ return 1233}let fun1=():number=>{ return 1233}fun1()//调用
定义没有返回值的方法
let fun3=():void=>{console.log("没有返回值")}
2.1函数传参
参数类型验证
let fun2 = (name:string,age:number):string=>{ return `${name}今年${age}`}console.log(fun2("小李",20))//输出小李今年20
2.2可选参数
注意:可选参数放到最后
// age可传可不传let fun2 = (name:string,age?:number):string=>{ return `${name}今年${age}`}console.log(fun2("小李"))//输出小李今年undefined
2.3默认参数
调用方法的参数给定默认值,与可选参数类似
// age可传可不传,不传则为默认值20let fun2 = (name:string,age:number=20):string=>{ return `${name}今年${age}`}console.log(fun2("小李"))//输出小李今年20
2.4剩余参数
将传入参数用一个数组接收
let sum=(...res:number[]):number=>{ let sum:number=0 for(let i=0;i
其他用法
let sum=(name:string,...res:number[]):string=>{ let sum:number=0 for(let i=0;i
2.5函数重载
方法重载:通俗地讲,就是同名方法的传入参数(个数或者类型)不同,或者返回值类型不同
function add(age:number):number;function add(age:number,name:string):stringfunction add(age?:number,str?:any):any{ if(typeof age==='number'&&typeof str==="string"){ return `${str}今年${age}` } if(typeof age==="number"){ return age }}console.log(add(20))//20console.log(add(20,"小李"))//小李今年20
总结
ts中支持es5、es6语法,在其基础上增加的了,函数的返回值类型、参数类型、重载等