# 1. 函数声明
// 返回值为 string 类型
function run():string{
return '在跑步';
}
// 返回值为 number 类型
function run():number{
rerurn 18;
}
...其他返回类型依次类推
// 无返回值
function run():void{
console.log('我没有返回值')
}
# 2. 函数传参
// 注意 调用函数时 传参的顺序、类型、个数必须和声明时一致
function getInfo(name:string, age:number):string{
return '我的名字叫' + name + '今年' + age + '岁了';
}
console.log(getInfo('张三')); // 报错
console.log(getInfo(18, '张三')); // 报错
console.log(getInfo('张三', 18)); // 正常
# 3. 可选参数
// 注意 调用函数时没有加 '?' 的参数,在传参的顺序、类型、个数必须和
// 声明时一致,加了 '?' k可不填写,但可选参数必须放在最后
function getInfo(name:string, age?:number):string{
return '我的名字叫' + name + '今年' + age + '岁了';
}
console.log(getInfo('张三')); // 正常
console.log(getInfo('张三',18)); // 正常
# 4. 默认可选参数
// 有了默认值的参数,在调用函数时可不传,
// 不传默认采用默认值,传了则采用 传入值
function getInfo(name:string, age:number = 20):string{
return '我的名字叫' + name + '今年' + age + '岁了';
}
console.log(getInfo('张三')); // 正常 - 我的名字叫张三今年20岁了
console.log(getInfo('张三',18)); // 正常 - 我的名字叫张三今年18岁了
# 5. 剩余参数
// 用 ... 运算符 展开数组传参
function getInfo(..arr[]:number):number{
let sum = 0;
for(let i=0;i<arr.length;i++){
sum+=arr[i];
}
return sum;
}
console.log(getInfo(1,2,3,4)); // 10
console.log(getInfo(1,2,3,4,5)); // 15
另一种写法
function getInfo(a:number, ..arr[]:number):number{
let sum = a;
for(let i=0;i<arr.length;i++){
sum+=arr[i];
}
return sum;
}
console.log(getInfo(1,2,3,4)); // 10 注意 此时 a 是 1,arr 是 = [2,3,4,5]
console.log(getInfo(2,3,4,5,6)); // 20 注意 此时 a 是 2,arr 是 = [3,4,5,6]
网友评论