介面(inte***ces)可以用於對「物件的形狀(shape)」進行描述。
implements:實現(implements)是物件導向中的乙個重要概念。
類實現介面:乙個類只能繼承自另乙個類,有時候不同類之間可以有一些共有的特性,這時候就可以把特性提取成介面(inte***ces),用 implements 關鍵字來實現。
門是乙個類,防盜門是門的子類。如果防盜門有乙個報警器的功能,我們可以簡單的給防盜門新增乙個報**法。這時候如果有另乙個類,車,也有報警器的功能,就可以考慮把報警器提取出來,作為乙個介面,防盜門和車都去實現它:
inte***ce alarm ;
泛型:
泛型(generics)是指在定義函式、介面或類的時候,不預先指定具體的型別,而在使用的時候再指定型別的一種特性。
實現乙個函式 createarray,它可以建立乙個指定長度的陣列,同時將每一項都填充乙個預設值:
function createarray(length:number,value:any):array{
let result = ;
for(let i =0;iresult[i] = value;
return result;
createarray(3,'x');
在函式名新增了,其中t用來指代任意輸入的型別,在後面的輸入value:t和輸出array中即可使用。
function createarray(length: number, value: t): array{
let result: t = ;
for (let i = 0; i < length; i++) {
result[i] = value;
return result;
createarray(3, 'x');
在呼叫的時候,可以指定它具體的型別為 string。當然,也可以不手動指定,而讓型別推論自動推算出來。
function createarray(length:number,value:t):array{
let result:t = ;
for(let i =0;i result[i] = value;
return result;
createarray(3,'x');
多個型別引數:
定義泛型的時候,可以一次定義多個型別引數:
function swap(tuple: [t, u]): [u, t] {
return [tuple[1], tuple[0]];
swap([7, 'seven']); // ['seven', 7]
Typescript學習筆記
物件導向特性 類類的宣告 用class關鍵字 加類名 class person 類宣告完之後就可以被例項化了,類相當於乙個模子.name string eat var p1 new person p1.name batman p1.eat var p2 new person p2.name supe...
typescript學習筆記
1,ts是js的超集,ts是強型別語言。ts比js入門更難。ts的物件導向寫法比js更優雅。ts更適合團隊協作。2,宣告變數篇。3,宣告函式篇。4,物件導向篇。4.1,子類繼承父類 extends 繼承多個介面 implements。4.2,this表示當前物件,super表示父類物件。子類不寫co...
vue3 Typescript學習筆記 二
上節課的 可以說沒什麼章法可言,所有的變數和方法都混淆在一起,我最不能忍受的是在setup中要改變和讀取乙個值的時候,還要加上value。這種 一定是可以優化的,需要引入乙個新的 apireactive。它也是乙個函式 方法 只不過裡邊接受的引數是乙個 object 物件 然後無論是變數和方法,都可...