函式的定義有兩種方式
1. 函式的定義
複製程式碼
function hello(name:string,age:number):string{
return name + age;
}
複製程式碼
2.函式表示式
複製程式碼
type GetFunction = (x:string,y:string) => string;
let getUsername:GetFunction = function(firstName:string,lastName:string):string{
return firstName+lastName;
}
複製程式碼
函式的特性
1.可選引數
複製程式碼
function print(name:string,age?:number):void{
console.log(name,age)
}
複製程式碼
2.預設引數
複製程式碼
function ajax(url:string,method:number='Get'):void{
console.log(url,method)
}
ajax('/user'); //user Get
複製程式碼
3.剩餘引數
複製程式碼
function sum(...numbers:number[]){
console.log(numbers); //[ 1, 2, 3, 4 ]
}
sum(1,2,3,4);
複製程式碼
函式的過載
在java裡,過載指的是兩個函式,方法名是一樣的,但是引數數量或者型別不一樣
在ts裡,僅僅指是為一個函式提供多個函式定義
let obj = {name:'pengsitao',age:10};
function attr(val:string):void;
function attr(val:number):void;
//如果沒有以上兩句attr函式可以接受任何型別的引數,但是加上如上兩句,函式只能接受string 和 number型別的引數
function attr(val:any){
if(typeof val === 'string'){
obj.name = val;
}else if(typeof val ==='number'){
obj.age = val;
}
}
attr('kwj');
attr(20);
console.log(obj)
複製程式碼