typescript函數

typescript函數的隱式定義

在typescript中的函數并不需要刻意去定義惋鸥,比如我們實現一個加法函數:

const add = (a:number, b:number) => {a + b}

這種方式沒有顯示的去定義一個函數册舞,但是typescript是可以檢測到的

typescript函數的顯式定義

在變量后面加冒號與類型的定義竭鞍,括號里的(a:number, b:number)為參數類型惨缆,而通過=> 來鏈接與返回值寥裂,最后則是返回值的類型哈垢。

const add:(a:number, b:number) => number = (a:number, b:number) => a +  b

函數的參數

  • 可選參數
    一個函數的參數可能是不存在的,可以使用鸵赖?來定義這種情況
const add (a:number, b?:number) => a + (b?b:0)

參數b有number與undefined兩種可能务漩。

  • 默認參數
    與javascript類似。
const add = (a:number, b= 0) => a + b
  • 剩余參數
    與javascript類似
const add = (a:number ,...rest:number[]) => rest.reduce(((a,b)=>a + b ),a)

重載

重載(overloading) 是在一個類里面它褪,方法名字相同饵骨,而參數不同。返回類型可以相同也可以不同茫打。
每個重載的方法(或者構造函數)都必須有一個獨一無二的參數類型列表居触。

  • typescript重載的實現
// 重載
interface Direction {
  top: number,
  bottom?: number,
  left?: number,
  right?: number
}
function assigned(all: number): Direction
function assigned(topAndBottom: number, leftAndRight: number): Direction
function assigned(top: number, right: number, bottom: number, left: number): Direction

function assigned (a: number, b?: number, c?: number, d?: number) {
  if (b === undefined && c === undefined && d === undefined) {
    b = c = d = a
  } else if (c === undefined && d === undefined) {
    c = a
    d = b
  }
  return {
    top: a,
    right: b,
    bottom: c,
    left: d
  }
}

assigned(1)
assigned(1,2)
assigned(1,2,3)
assigned(1,2,3,4)
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市老赤,隨后出現的幾起案子轮洋,更是在濱河造成了極大的恐慌,老刑警劉巖抬旺,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件弊予,死亡現場離奇詭異,居然都是意外死亡开财,警方通過查閱死者的電腦和手機汉柒,發(fā)現死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來责鳍,“玉大人碾褂,你說我怎么就攤上這事±穑” “怎么了正塌?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長恤溶。 經常有香客問我乓诽,道長,這世上最難降的妖魔是什么咒程? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任问裕,我火速辦了婚禮,結果婚禮上孵坚,老公的妹妹穿的比我還像新娘粮宛。我一直安慰自己,他們只是感情好卖宠,可當我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布巍杈。 她就那樣靜靜地躺著,像睡著了一般扛伍。 火紅的嫁衣襯著肌膚如雪筷畦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天刺洒,我揣著相機與錄音鳖宾,去河邊找鬼。 笑死逆航,一個胖子當著我的面吹牛鼎文,可吹牛的內容都是我干的。 我是一名探鬼主播因俐,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼拇惋,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了抹剩?” 一聲冷哼從身側響起撑帖,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎澳眷,沒想到半個月后胡嘿,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡钳踊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年衷敌,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片箍土。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡逢享,死狀恐怖,靈堂內的尸體忽然破棺而出吴藻,到底是詐尸還是另有隱情瞒爬,我是刑警寧澤,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布沟堡,位于F島的核電站侧但,受9級特大地震影響,放射性物質發(fā)生泄漏航罗。R本人自食惡果不足惜禀横,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望粥血。 院中可真熱鬧柏锄,春花似錦酿箭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至抬闷,卻和暖如春妇蛀,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背笤成。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工评架, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人炕泳。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓纵诞,卻偏偏與公主長得像,于是被迫代替她去往敵國和親喊崖。 傳聞我的和親對象是個殘疾皇子挣磨,可洞房花燭夜當晚...
    茶點故事閱讀 42,834評論 2 345

推薦閱讀更多精彩內容

  • 函數是JavaScript應用程序的基礎。 它幫助你實現抽象層荤懂,模擬類茁裙,信息隱藏和模塊。 在TypeScript里...
    2o壹9閱讀 576評論 0 49
  • 1. 函數聲明 1.1 函數聲明法 1.2 函數表達式 1.3 匿名函數 TypeScript中的函數也是...
    淺憶_0810閱讀 288評論 0 1
  • TypeScript提供了函數重載的功能,它可以支持多種形式的參數類型,返回相同或者不同類型的結果 為什么提供重載...
    是蘇菇涼呀閱讀 479評論 0 1
  • 介紹 函數是 JavaScript 應用程序的基礎护桦,它幫助你實現抽象層、模擬類矾瘾、信息隱藏和模塊。在 TypeScr...
    24KBING閱讀 368評論 0 0
  • 日期: 2019 年 9 月 3 日 typescript 函數 具名函數與匿名函數 和JavaScript一樣箭启,...
    五十嵐色葉閱讀 335評論 0 2