函数:
// 函数
function hello (name: string ): void {
// void表示没有返回值
console.log(111);
}
//定义一个类
type GetName = (firstName: string, lastName: string) => string
//使用
let getName: GetName = function(firstName: string, lastName: string): string {
return firstName + lastName
}
// 可选参数
function print (name: string, age?:number):void {
console.log(name, age)
}
print('111')
// 默认参数
function ajax(url:string, method: string="get") {
console.log(url, method);
}
ajax('/')
// 剩余参数
function sum (...numbers:number[]) {
return numbers.reduce((val, item) => val + item ,0)
}
console.log(sum(1,2,3)); //6
// 函数的重载
let obj:any = {}
// 第一种情况 传布尔值可以
// function attr(val:any):void {
// if(typeof val === 'string') {
// obj.name = val
// } else {
// obj.age = val
// }
// }
// attr('111')
// attr(18)
// attr(true)
// 第二种情况 传布尔值报错, 前两个是函数声明,后面的一个是函数定义; 改成以下第三种情况也可以实现