今天要來介紹TypeScript(TS)的介面型別(Interface)
首先了解TS的核心原則之一
介面型別擁有以下特性:
鴨子型別
當你看到一隻鳥走起來像鴨子、
游起來像鴨子、
叫起來也像鴨子,
那麼這隻鳥就可以被稱為鴨子。
判斷依據:物件若含有特定名稱的屬性,它可能就是某種型別。
因此,TS介面可以補強TS得鴨子型別。
介面不會產生對應的JS程式碼,
它是使用在程式設計階段,
提供工具程式自動完成功能,
而在程式編譯階段提供型別檢查,
因此,介面對於執行階段的JS程式碼是沒有任何影響的。
只需傳入函式的物件滿足介面需求即可。
範例如下,
interface MyFunc{
x:number;
y:number;
}
let func1=(p:MyFunc)=>{
console.log(p.x,p.y);
}
func1({x:10});//error 每項參數都必須對應到
func1({x:10,y:20});
func1({x:10,z:20}); //error 未標記z視為錯誤
範例中,
第一項錯誤,
介面參數行內已標記指定y屬性,
但傳入參數時並沒傳入該值,
因此出現錯誤。
第二項錯誤,
介面參數行內標記未指定z屬性,
但傳入參數時卻傳入該值,
所以就會被視為錯誤。
今天我們就簡單認識介面型別(Interface)該如何使用,
之後會再帶範例來解釋。
加油加油。