// 接口约束函数
interface Ifun {
(x:number):number
}
let fn2:Ifun = function(x:number):number{
return x + 11
}
console.log(fn2(1));
// 定义了 一个函数 求数字相加 的
let addNum:(x:number,y:number)=>number = function(x:number,y:number):number{
return x + y
}
console.log(addNum(1,2))
// 有可能 是 两个数字 相加 或者 三个 数字相加
// 可选 参数 加一个 问号
let addNum:(x:number,y:number,z?:number)=>number = function(x:number,y:number,z?:number):number{
// if(z){
// return x + y + z
// }
// return x + y
if(typeof z == 'number'){
return x + y + z
}else{
return x + y
}
}
console.log(addNum(1,2,3))
console.log(addNum(1,2,0))
// 可选参数的注意事项
let addNum:(x:number,y:number,z?:number,a?:number)=>number = function(x:number,y:number,z?:number,a?:number):number{
console.log(z);
return x + y
}
// 目前是有 2 必选 的参数 + 1 可选的参数 ---> 3个必选的参数 + 1 可选的参数
// 3个 或者 4个 数字 参数相加
// 注意点: 也就是说 可选参数 后面 不能有其他的 必选参数了
addNum(1,2,3,4)
addNum(1,2,4)
let addNum:(x:number,y:number,z?:number)=>number = function(x:number,y:number,z?:number):number{
return x + y
}
// 默认参数 就会把这个参数 变成 可选的参数
// function addNum(x:number,y:number=1,z:number){
// return x + y + z
// }
console.log(addNum(1,5,1));
// 场景: 我想计算 数字 相加 :选填的参数 z --- 注意点
// let addNum:(x:number,y:number,z?:number)=>number = function(x:number,y:number,z?:number):number{
// return x + y
// }
// 默认参数 就会把这个参数 变成 可选的参数
function addNum(x:number,y:number=1,z:number){
return x + y + z
}
console.log(addNum(1,5,1));
// 4. 剩余参数
function add(x:number,...args:number[]):number{
let sum = x
for(let i:number=0;i<args.length;i++){
sum+=args[i]
}
return sum
}
console.log(add(1));
console.log(add(1,2,3));
console.log(add(1,2,3,4,5,6,7,8,9));