正常的函数
// 函数声明 function add(a,b){ return a+b } // 函数表达式,匿名函数 let add2=function(a,b){ return a+b }
在ts中
// TS function add3(a: number, b: number): number { //a,b都是number的类型, :number表示返回值为number return a + b } console.log(add3(1, 2)) let c = add3(2, 3) //上面返回值为number类型,所以赋值也为number类型 // 匿名函数 let add4: (a: number, b: number) => number = function (a: number, b: number): number { //定义好函数的参数时,后续一个参数都不能少,也不能多,但是可以定义可选参数去操作 return a + b } console.log(add4(3, 4)) let d = add4(3, 4)// 例子1 let xy = function (x: string, y?: string): string { //定义可选参数,可选参数不能放在必选参数前面 return x + y } console.log(xy('张' + ''))
// 例子2 let zz = "被抓到" let xy2 = function (x: string = "李", y?: string, z: string = zz): string { //定义可选参数,可选参数不能放在必选参数前面,但是在后面加默认参数则可以放后面 return x + y + z } console.log(xy2('李', '啥啊')) //当可选参数不选时则为undefined
// 剩余参数解决 function fn(x: string, y: string, ...args: number[]) { console.log(x, y, args) } fn('11', '22', 33, 44) // 函数重载:函数名相同,形参不同的多个函数,可以使用重载定义多个函数类型 function Newfn(x: string | number, y: string | number, z?: string | number): string | number { if (typeof x == 'string' && typeof y == 'string' && typeof z == 'string') { return x + y } else if (typeof x == 'number' && typeof y == 'number' && typeof z == 'number') { return x + y } } console.log(Newfn(1, 3)) console.log(Newfn('张', '三', ''))
标签:function,return,string,04,number,ts,参数,函数 From: https://www.cnblogs.com/wencaiguagua/p/18021030