介紹:
typescript的核心原則之一是對值所具有的結構進行型別檢查。它有時被稱做「鴨式辨型法」或「結構性子型別化」。在typescript裡,介面的作用就是為這些型別命名和為你的**或第三方**定義契約。
通過關鍵字inte***ce來定義介面
inte***ce list
inte***ce result
function render(result:result) )
}let result=, //只要介面中有必須的字段,即使出現了額外的字段也不會報錯
]}render(result);
如果這裡我們直接使用字面量的方式,ts就會對額外的字段進行型別檢查。
render(, //報錯
]})
那麼,我就不繞彎子了,繞過這種型別檢查的方式一共有三種:
1.把物件字面量賦值給乙個變數,函式接收變數(就像我們最上面的做法)
2.型別斷言(型別斷言的含義是我們要告訴編譯器我們知道這個物件的型別就是***)
// 型別斷言也有兩種書寫方式
//1.通過as關鍵字
render(,
]} as result)
//2.通過<>號
render(,
]})
3.使用字串索引簽名:
inte***ce list
介面成員的屬性:
1.可選屬性:
inte***ce list
2.唯讀屬性:
inte***ce list
當我們不確定介面中屬性的個數時,就可以使用可索引型別的介面(可索引型別的介面可以用字串去索引也可以用數字去索引)
inte***ce stringarray
let chars:stringarray=['a','b'];
inte***ce name
函式定義的三種方式:
// 1.用變數來定義函式型別
let adds : (x:number,y:number)=>number;
adds=(a,b)=>a+b;
// 2.用介面宣告函式
inte***ce add
let add:add=(a,b)=>a+b;
// 3.型別別名定義函式(為我們的函式型別和起乙個名字,函式名為ps)
type ps=(x:number,y:number)=>number;
let as:ps=(a,b)=>a+b;
下面我們來看一下混合型別介面:
乙個介面既可以定義乙個函式,也可以像物件一樣擁有屬性和方法
// 定義乙個混合型別的介面
inte***ce lib
//實現混合型別的介面
let lib:lib=(()=>{}) as lib;
lib.version='2.0';
lib.dosomestring=()=>{};
TypeScript中的介面
在物件導向的程式設計中,介面是一種規範的定義,定義了行為和動作的規範.介面不關心這些類的內部狀態資料,也不關心這些類裡方法的實現細節,它只規定這批類裡必須提供某些方法,提供這些方法的類就可以滿足實際需要。typescript中的介面分為 1,屬性介面 2,函式型別介面 3,可索引介面 4,類型別介面...
TypeScript中物件的型別限制 介面
物件的型別 介面 介面在ts中的作用之一 typescript 中的介面是乙個非常靈活的概念,除了可用於對類的一部分行為進行抽象以外,也常用於對物件的形狀進行描述。此篇主要學習對物件的形狀進行描述.inte ce person let tom person let merry person let ...
筆記 TypeScript介面
在物件導向的程式設計中,介面是一種規範的定義,它定義了行為和動作的規範,在程式設計裡面,介面起到一種限制和規範的作用。介面定義了某一批類所需要遵循的規範,介面不關心這些類的內部狀態資料,也不關心這些類裡的方法的實現細節,它只規定這批類裡必須提供某些方法,提供某些方法,提供這些方法的類就可以滿足實際需...