跳到主要内容

Type 與 Interface 使用建議

typeinterface 使用的建議:

  • 遇到不希望被人擴充、單純想代表一種獨立的資料格式的概念時,使用型別的宣告 type
  • 如果單純是原始型別或者是要表示為列舉型別、元組型別,一定只能使用 type 進行宣告
  • 型別複合(使用 union 或 intersection)的過程通常都是使用 type 進行宣告
  • 遇到功能是可以被重複再利用,該功能可能會被多方程式碼或第三方套件依賴,使用介面的宣告 interface
  • 物件格式通常建議用 interface,使用起來彈性較大
  • 混合使用型別與介面是可以的,但就是要記得:程式碼到底想要表達的重點是什麼?
  • 混用過後不希望再被擴充或代表獨立靜態的型別格式就應該要用型別化名的宣告 type,藉由 union 或 intersection 達成
  • 混用過後的結果是可以被擴充或多方利用,則應該要定義成介面,藉由 extends 去達成

介面 Interface V.S. 型別 Type

從剛剛我們得出的結論:介面可以進行延伸或擴展(Interface Extension),這裡就可以開始點出介面跟型別系統的主要差別。

介面(Interface)的意義 —— 跟規格的概念很像,可以擴充設計、組裝出更複雜的功能規格

型別(Type)的意義 —— 代表靜態的資料型態,因此型別一但被定義出來則恆為固定的狀態。儘管可以利用型態的複合(intersection 與 union)看似達到型別擴展的感覺,然而這個行為並不叫作型別擴展,而是創造出新的靜態型別