函數(shù)
函數(shù)是由參數(shù),方法體,返回值構(gòu)成。(無(wú)返回值時(shí)使用viod)
1.1函數(shù)的定義
function ${name}(): ${value}{
//TODO
}
a.命名定義
function addNum(x:number,y:number):number{
return x+y;
}
b.匿名定義
let result=function(x:number,y:number){
return x+y;
}
c.箭頭函數(shù)
let addNum(x:number,y:number) => number
=function(x:number,y:number){
return x+y;
}
//簡(jiǎn)寫如下
let addNum(x,y)=> x + y
1.2 可選參數(shù)
在函數(shù)中不是每個(gè)參數(shù)都為必填,參數(shù)為可選或者有默認(rèn)值時(shí)可以不傳入?yún)?shù),如下
function getUserInfo(name:string,sex?:string,age:number=18){
if(sex){
console.log('sex:${sex}')
}
console.log('name:${name},age:${age}');
}
getUserInfo('Mr.Li');
getUserInfo('Mr.Li','男');
getUserInfo('Mr.Li','男',24);
必選參數(shù)必須寫在可選參數(shù)之前,否則編譯會(huì)報(bào)錯(cuò)。
1.3剩余參數(shù)
多個(gè)不確定參數(shù)傳入為剩余參數(shù),剩余參數(shù)必須為最后一個(gè)參數(shù)使用否則會(huì)報(bào)錯(cuò),如下
function getUserInfo(name:string,age:number=18,...more:string[]){
//TODO
}
泛型
2.1 泛型基本使用
funtion doSome<T>(data:T):T{
return DATA;
}
//使用
doSome<string>('this is a message')
2.2接口中使用泛型
interface Search {
<T,Y>(name:T,age:Y):T
}
let fn:Search = function <T, Y>(name: T, id:Y):T {
console.log(name, id)
return name;
}
fn('li',11);