学习TypeScript 5(函数扩展)
函数的定义
// 函数 const fn = function (name:string,age:number) { return name + age } let a = fn('张三',18) console.log(a)
注意,参数不能多传,也不能少传 必须按照约定的类型来
但是有默认值的除外
// 函数 const fn = function (name:string,age:number = 30,address?:string) { return name + age } let a = fn('张三',18) //参数不能多传,也不能少传 必须按照约定的类型来 let b = fn('李四') //但 定义了默认值的除外也可以使用
?可选运算符// 函数 const fn = function (name:string,age:number = 30,address?:string) { return name + age + address } let a = fn('张三',18) //参数不能多传,也不能少传 必须按照约定的类型来 let b = fn('李四') //但 定义了默认值的除外 // 也可以使用 ? 可选运算符 但默认会变成 undefined console.log(a) console.log(b)
使用接口约束函数类型
//使用 interface 约束函数类型 //同样不能多一个也不能少一个 interface User { name:string, age:number, address?:string //使用接口时不会出现 undefined } const fn1 = function(user:User) { return user } let c = fn1({ name:"王五", age:20 }) console.log(c)
函数重载
重载是方法名字相同,而参数不同,返回值类型可以相同也可以不同。
如果参数类型不同,则操作函数参数类型应设置为 any
参数数量不同 你可以将不同的参数设置为可选
//函数的重载 //函数名相同,参数不同,返回值可以相同也可以不同 function fn2(params:number):void function fn2(params:string,params2:number):void //上面两个是重载函数 (没有花括号), 下面的是执行函数 function fn2(params:any,params2?:any):any { console.log(params) console.log(params2) } let aa = fn2(1) //遵循第一套(个函数的)规则 let bb = fn2("赵六",23) //遵循第二套(个函数的)规则
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果



