Typescript學習筆記

2021-08-19 02:32:26 字數 3558 閱讀 2286

物件導向特性

類類的宣告

用class關鍵字 加類名

class

person

}

類宣告完之後就可以被例項化了,類相當於乙個模子.

name

string;

eat()

}var p1 = new person();

p1.name = "batman";

p1.eat();

var p2 = new person();

p2.name = "superman";

p2.eat();

訪問控制符:在宣告類的屬性和方法的時候可以為它們指定訪問控制符.

作用:可以控制類的屬性和方法是否可以在類的外部被訪問到

共三個:

public:預設的,如果屬性和方法前面什麼都沒寫就是預設public ,在類的外部和內部都可以被訪問到.

private:只有在類的內部被訪問到.

protected在類的內部和子類裡能訪問到

class person 

//私有的

private age;

private eatmuch()

}

類的建構函式
class

person

}

類的建構函式之後在類被例項化new的時候才會被呼叫,只呼叫這一次

在外部訪問不到這個方法.

作用:當我要例項化乙個類的時候,想要必須為這個例項指定乙個屬性的時候.

比如,我要例項話person類,必須為他指定乙個名字

class

person

}var p1 = new person();//這裡就不能這麼寫了

//要寫成這樣

var p1 = new person("batman");

p1.eat();

我們這裡為類宣告了乙個name屬性,在例項話的時候,為這個name屬性賦了乙個值.

以上可以簡化

//完整版

class

person

}//簡化版

class

person

}

這裡需要注意:如果用簡寫,那建構函式上宣告要明確的寫上訪問控制符public也是不能被省略的

class person 

//這樣寫是沒有宣告name屬性

constructor

(name:string)

}

類的繼承

關鍵字

extends

super

class

employee

extends

person

當乙個類用extends關鍵字繼承另乙個類的時候,這個類就會獲得它所繼承的那個類的所有屬性和方法.

在employee類裡宣告自己的屬性和方法

class

employee

extends

person

}

關鍵字super:

第乙個用法是調父類的建構函式

假設,我們在例項化乙個雇員的時候,必須要給他起乙個名字還必須給她乙個工號

class

employee

extends

person

code:string;

work()

}var e1 = new employee("batman","1");

super相當於是es5中,建構函式的偽裝

super關鍵字的第二個用法:調父類的其他方法

super.eat()
介面(inte***ce)

用來建立某種**約定,使得其他開發者在呼叫某個方法或建立新的類時必須遵循介面所定義的**約定.

兩個關鍵字

inte***ce用來宣告乙個介面

implements用來實現乙個介面

//宣告乙個介面

inte***ce

ipersin

class

person

}

以上先宣告了乙個介面,然後建立了乙個類,在類裡使用了這個介面

介面的第乙個用法:它作為乙個方法的引數的型別宣告

這樣當我在呼叫這個方法的時候typescript會去檢查你的方法是否滿足這個介面要求宣告的那些屬性

var p1 = new person();
呼叫這個方法的時候必須傳乙個物件引數進去,這個物件裡必須寫上name屬性和age屬性,這樣typescript才不會報錯.

注意:這裡多傳乙個屬性或者少傳乙個屬性都會報錯,因為你沒有滿足這個介面所宣告的屬性的要求

介面的第二個使用方式:

inte***ce

animal

class

sheep

implements

animal

}class

tiger

implements

animal

}

實現這個介面的類,必須實現介面中定義的方法

泛型(generic)

引數化的型別,一般用來限制集合的內容

var worker:array

= ;

以上person就是這個陣列的泛型,它規定了這個陣列裡只能放person

worker[0] = new person("zhangsan");

worker[1] = new employee("lisi");

引數新特性

引數型別:

在引數名稱後面使用冒號來指定引數型別

var myname:string = "zhuzhuxia"
想要它又是字串又可以是數字就用anyvoid用來宣告乙個方法是否有返回值

可以宣告型別的位置:在變數,方法,和方法的引數後面宣告型別

自定義型別:

class

person

var zhangsan:person = new person();

typescript學習筆記

1,ts是js的超集,ts是強型別語言。ts比js入門更難。ts的物件導向寫法比js更優雅。ts更適合團隊協作。2,宣告變數篇。3,宣告函式篇。4,物件導向篇。4.1,子類繼承父類 extends 繼承多個介面 implements。4.2,this表示當前物件,super表示父類物件。子類不寫co...

TypeScript 學習筆記1

inte ces typescript 的 type checking 專注於值的 shape inte ces的作用在於命名值使其便於檢測,同時作為軟體與軟體 軟體內部交流的工具。用於檢測,編譯成js的話沒有相應的語句 ts inte ce squareconfig function creats...

TypeScript 學習筆記2

class js物件導向模型是原型 es6有類和物件 這裡引入語法糖?來使用類 記三個例子 例子1 class animal move meters number 0 class snake extends animal move meters 5 class horse extends anima...