目前ts愈來愈火,主流的前端框架,比如angular,vue 3均是採用ts來編寫,全部不少公司的項目都是用ts來寫的,全部是時候認真學習ts了
ts來源於微軟公司,越是大的公司,越是大的項目,越是推薦使用ts來編碼,ts是js的超集,在js上面增長一些內容,相對於js,ts具備如下的優勢:前端
總的來講ts=js+type+(一些其餘特性:枚舉,接口等)
使用ts以前,首先須要安裝node,安裝好node以後會自帶npm,npm是node包管理工具,其能夠下載一些社區經常使用的包,咱們經過npm來安裝ts編譯工具typescript , npm install typescript -g
編寫一個ts文件:index.ts,經過下面命令行工做tsc index,.ts
,就能夠將index.ts編譯成index.js,最後在瀏覽器中運行(ts是無法在瀏覽器中運行的,必須進行編譯)vue
var a:number a=10 console.log(a)
上面就是定義了a的變量類型是number類型,若是這時候傳string類型賦值給a,編譯器就會保存
數據類型主要有:node
示例,定義數組有兩種方法:typescript
let myArr1:string[]=["st1","st2"] let myArr2:Array<string>=["st1","st2"]
也能夠給函數參數添加類型限制,這時若是傳入的參數個數和類型和定義的形參不匹配,編譯時候就會報錯:npm
const add=(a:number,b:number)=>{ return a+b } console.log(add(2,4))
也能夠爲函數返回值添加類型數組
const add=(a:number,b:number):number=>{ return a+b }
也能夠給函數加上默認的參數,若是函數的返回值是空,能夠設置返回值類型是void瀏覽器
const add=(a:number=8,b:number=10):void=>{ console.log(a+b) }
也能夠設置可選參數,以下:這時候b能夠傳能夠不傳前端框架
const add=(a:number=8,b?:number):void=>{ console.log(a+b) }
若是須要將一個變量設置爲任何類型。可使用any,可是儘可能少用any框架
let a:any; a=10; a="str" a=[1,2,3]
若是須要設置一個變量爲兩種或者更多類型,可使用聯合類型的方式,|函數
let a:number | string
不少語言具備面向對象的屬性,包括ts,面向對象三大屬性:封裝,繼承,多態了,能夠將現實生活中的一切內容當作類或者對象一個Class,經過new()獲得一個對象,一個對象有屬性和方法(方法就是對屬性進行操做)
class Person{ // 構造方法 constructor(fn:string,ln:string){ this.firstName=fn this.lastName=ln } firstName:string; lastName:string; }
經過extends關鍵字,可讓一個類繼承已有類的屬性和方法:
class Person{ firstName:string lastName:string } class Programmer extends Person{ } let p=new Programmer() p.firstName='jack' p.lastName='chen' console.log(p)
子類若是調用某個方法,若是在子類中已有該方法,則直接調用該方法,若是沒有,則去調用父類的方法,若是強制調用父類的方法,能夠把this換成super
類成員的可見性主要有public,private,protected
public:在類中和類的外面均是能夠調用,默認就是public
private:只能在類中調用,子類和類外面是不能調用的,若是要調用私有的屬性或者方法,能夠經過公有的方法來訪問,對外暴露公有的方法,子類也是能夠繼承父類的私有的方法和屬性,可是必須經過父類暴露的公有方法進行訪問
protected:只能在類中或者是子類中調用 ,即便子類和父類生成的對象也是不能訪問 總的來講權限範圍:public>protected>private 未完待續。。。