iT邦幫忙

2021 iThome 鐵人賽

DAY 9
0
自我挑戰組

從新手開始TypeScript系列 第 9

Day9-TypeScript(TS)的介面型別(Interface)Part 2

  • 分享至 

  • xImage
  •  

今天要來講介面型別的使用範例。

通常我們會使用介面來定義函式型別,程式碼如下,

interface MathFunc {
    (x: number, y: number): number;
}

interface 為宣告介面型別。
MathFunc 為介面的名稱,後面用大括弧來定義介面裡面的屬性名稱與型別。
(x: number, y: number)傳入的參數及其型別。
 number 接在冒號後的型別為傳出得型別。

這就是介面型別的基本宣告,
特別需要注意的是,
介面型別不會轉譯成JS程式碼喔。

接續使用上面的介面,使用範例如下,

let add: MathFunc;
add = function add(x: number, y: number) {
    return x + y;
}
console.log(add(10,20));

首先宣告add變數為MathFunc介面協別
接著使用介面來定義函式型別,
傳入參數為x: numbery: number
分別x,y都是number型別,
而傳出參數為x + y
可知 number +  number = number ,
傳出參數型別也是number型別,
符合介面別的傳入傳出型別,
接著呼叫此函式,
add(10,20)可得 10 + 20,
因此回傳值為number型別的30。

另外,特別需要說明的是,
參數名稱不必與介面名稱相同
也就是說介面傳入參數使用x與y,
使用時也不一定要使用x與y,
更能在使用時依照程式所需,
使用更容易理解的參數名稱即可,如下。

let add: MathFunc;
add = function add(i: number, j: number) {
    return i + j;
}
console.log(add(30,40));

可依不同需求調整參數名稱。

今日結語

希望大家對於使用介面來定義函式型別有基本的了解了,
那麼下篇再循序漸進的讓大家能更加瞭解不同的複雜型別,
因為JS沒有這些型別,
所以基礎大家就多試範例讓自己熟悉一下,
大家加油喔!


上一篇
Day8-TypeScript(TS)的介面型別(Interface)Part 1
下一篇
Day10-TypeScript(TS)的索引型別(Indexable Type)
系列文
從新手開始TypeScript30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言