2.函数的定义及函数的参数
2020-02-10 本文已影响0人
我只会吃饭
函数的定义
// 函数式
function run2():void {
}
run2();
// 赋值表达式
let run3 = function ():void {
}
run3();
函数的参数 (必传)
function person(name:string, age:number):object {
return {
name,
age
}
}
// 形参必传
console.log(person('hyj', 18));
// console.log(person('hyj')); // 报错
函数的可选参数
可选参数 使用 '?'
可选参数必须配置到参数的后面
function person1(name:string, age?:number):object {
return {
name,
age
}
}
console.log(person1('hyj'));
函数的默认参数
function person2(name:string, age:number=18):object {
return {
name,
age
}
}
console.log(person2('hyj'));
函数的 剩余参数
使用扩展运算符
// 扩展运算符 处理多于的参数
function sumTotal(a:number, b:number, ...argu:number[]):number {
let res:number = a + b;
return argu.reduce((a, b) => a + b, res);
}
函数的重载
typescript中的重载:通过为同一个函数提供多个函数类型定义来实现多种功能的目的
function people(name:string):string;
function people(age:number):number;
function people(desc:any):any {
return typeof desc === 'string' ? '我叫' + desc : '我芳龄' + desc;
}
console.log(people('hyj'));
console.log(people(18));
// console.log(people(true)); // 报错 没有这个类型
function people1(name:string):string;
function people1(name:string, age:number):string;
function people1(name:any,age?:any):any {
return typeof age !== 'number' ? '我叫' + name : {name, age};
}
console.log(people1('hyj'))
console.log(people1('hyj', 18))