typescript 入門(mén)教程一

從今天開(kāi)始,持續(xù)更新typescript入門(mén)教程系列....

目前ts越來(lái)越火,主流的前端框架伊诵,好比angular哀墓,vue 3均是采用ts來(lái)編寫(xiě),所有很多公司的項(xiàng)目都是用ts來(lái)寫(xiě)的,所有是時(shí)候認(rèn)真學(xué)習(xí)ts
ts來(lái)源于微軟公司,越是大的公司,越是大的項(xiàng)目藐唠,越是推薦使用ts來(lái)編碼,ts是js的超集鹉究,在js上面增加一些內(nèi)容宇立,相對(duì)于js,ts具有以下的優(yōu)點(diǎn):

  • 支持面向?qū)ο蠓椒ㄗ耘猓癹s實(shí)現(xiàn)面向?qū)ο笫峭ㄟ^(guò)prototype妈嘹,function實(shí)現(xiàn)的,有點(diǎn)繁瑣绍妨。ts提供了Class润脸,Interface
  • 類(lèi)型檢查。ts能夠在編譯的階段就可以發(fā)現(xiàn)錯(cuò)誤他去,減少bug率毙驯。在實(shí)際開(kāi)發(fā)中,需要將ts編譯成js灾测,而且目前瀏覽器支持的是es5版本
  • 自帶文檔特性爆价。通過(guò)類(lèi)型注解,很容易知道某一個(gè)參數(shù)或者變量是什么類(lèi)型
  • IDE或者是編輯工具支持良好(自動(dòng)完成提示)

總的來(lái)說(shuō)ts=js+type+(一些其他特性:枚舉,接口等)
使用ts之前铭段,首先需要安裝node骤宣,安裝好node之后會(huì)自帶npm,npm是node包管理工具序愚,其可以下載一些社區(qū)常用的包憔披,我們通過(guò)npm來(lái)安裝ts編譯工具typescript , npm install typescript -g
編寫(xiě)一個(gè)ts文件:index.ts,通過(guò)下面命令行工作tsc index,.ts,就可以將index.ts編譯成index.js,最后在瀏覽器中運(yùn)行(ts是沒(méi)法在瀏覽器中運(yùn)行的爸吮,必須進(jìn)行編譯)

var a:number
a=10
console.log(a)

上面就是定義了a的變量類(lèi)型是number類(lèi)型芬膝,如果這時(shí)候傳string類(lèi)型賦值給a,編譯器就會(huì)保存
數(shù)據(jù)類(lèi)型主要有:

  • number拗胜,string蔗候,boolean,Array

示例,定義數(shù)組有兩種方法:

let myArr1:string[]=["st1","st2"]
let myArr2:Array<string>=["st1","st2"]

也可以給函數(shù)參數(shù)添加類(lèi)型限制埂软,這時(shí)如果傳入的參數(shù)個(gè)數(shù)和類(lèi)型和定義的形參不匹配,編譯時(shí)候就會(huì)報(bào)錯(cuò):

const add=(a:number,b:number)=>{
    return a+b
}
console.log(add(2,4))

也可以為函數(shù)返回值添加類(lèi)型

const add=(a:number,b:number):number=>{
    return a+b
}

也可以給函數(shù)加上默認(rèn)的參數(shù)纫事,如果函數(shù)的返回值是空勘畔,可以設(shè)置返回值類(lèi)型是void

const add=(a:number=8,b:number=10):void=>{
    console.log(a+b)
}

也可以設(shè)置可選參數(shù),如下:這時(shí)候b可以傳可以不傳

const add=(a:number=8,b?:number):void=>{ 
    console.log(a+b)
}

如果需要將一個(gè)變量設(shè)置為任何類(lèi)型丽惶§牌撸可以使用any,但是盡量少用any

let a:any;
a=10;
a="str"
a=[1,2,3]

如果需要設(shè)置一個(gè)變量為兩種或者更多類(lèi)型,可以使用聯(lián)合類(lèi)型的方式钾唬,|

let a:number | string
類(lèi)

很多語(yǔ)言具有面向?qū)ο蟮膶傩酝蚰模╰s,面向?qū)ο笕髮傩裕悍庋b抡秆,繼承奕巍,多態(tài)了,可以將現(xiàn)實(shí)生活中的一切內(nèi)容看成類(lèi)或者對(duì)象一個(gè)Class儒士,通過(guò)new()得到一個(gè)對(duì)象的止,一個(gè)對(duì)象有屬性和方法(方法就是對(duì)屬性進(jìn)行操作)

class Person{
    // 構(gòu)造方法
    constructor(fn:string,ln:string){
        this.firstName=fn
        this.lastName=ln
    }
    firstName:string;
    lastName:string;
 }

通過(guò)extends關(guān)鍵字,可以讓一個(gè)類(lèi)繼承已有類(lèi)的屬性和方法:

class Person{
    firstName:string
    lastName:string
 }
 class Programmer extends Person{
 }
 let p=new Programmer()
 p.firstName='jack'
 p.lastName='chen'
 console.log(p)

子類(lèi)如果調(diào)用某個(gè)方法着撩,如果在子類(lèi)中已有該方法诅福,則直接調(diào)用該方法,如果沒(méi)有拖叙,則去調(diào)用父類(lèi)的方法氓润,如果強(qiáng)制調(diào)用父類(lèi)的方法,可以把this換成super
類(lèi)成員的可見(jiàn)性主要有public薯鳍,private咖气,protected
public:在類(lèi)中和類(lèi)的外面均是可以調(diào)用,默認(rèn)就是public
private:只能在類(lèi)中調(diào)用,子類(lèi)和類(lèi)外面是不能調(diào)用的采章,如果要調(diào)用私有的屬性或者方法运嗜,可以通過(guò)公有的方法來(lái)訪問(wèn),對(duì)外暴露公有的方法悯舟,子類(lèi)也是可以繼承父類(lèi)的私有的方法和屬性担租,但是必須通過(guò)父類(lèi)暴露的公有方法進(jìn)行訪問(wèn)
protected:只能在類(lèi)中或者是子類(lèi)中調(diào)用 ,即使子類(lèi)和父類(lèi)生成的對(duì)象也是不能訪問(wèn)
總的來(lái)說(shuō)權(quán)限范圍:public>protected>private
未完待續(xù)抵怎。奋救。。


<center>如果覺(jué)得本文有收獲反惕,請(qǐng)我喝杯咖啡吧尝艘,你們的支持是我最大的動(dòng)力 </center>
<div align=center><img width = '100' height ='150' src ="https://graph.baidu.com/resource/212f2cd5fea74c832764b01572346781.png"/></div>

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市姿染,隨后出現(xiàn)的幾起案子背亥,更是在濱河造成了極大的恐慌,老刑警劉巖悬赏,帶你破解...
    沈念sama閱讀 211,817評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件狡汉,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡闽颇,警方通過(guò)查閱死者的電腦和手機(jī)盾戴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)兵多,“玉大人尖啡,你說(shuō)我怎么就攤上這事∈1欤” “怎么了衅斩?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,354評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)援雇。 經(jīng)常有香客問(wèn)我矛渴,道長(zhǎng),這世上最難降的妖魔是什么惫搏? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,498評(píng)論 1 284
  • 正文 為了忘掉前任具温,我火速辦了婚禮,結(jié)果婚禮上筐赔,老公的妹妹穿的比我還像新娘铣猩。我一直安慰自己,他們只是感情好茴丰,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布达皿。 她就那樣靜靜地躺著天吓,像睡著了一般。 火紅的嫁衣襯著肌膚如雪峦椰。 梳的紋絲不亂的頭發(fā)上龄寞,一...
    開(kāi)封第一講書(shū)人閱讀 49,829評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音汤功,去河邊找鬼物邑。 笑死,一個(gè)胖子當(dāng)著我的面吹牛滔金,可吹牛的內(nèi)容都是我干的色解。 我是一名探鬼主播,決...
    沈念sama閱讀 38,979評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼餐茵,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼科阎!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起忿族,我...
    開(kāi)封第一講書(shū)人閱讀 37,722評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤锣笨,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后肠阱,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體票唆,經(jīng)...
    沈念sama閱讀 44,189評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評(píng)論 2 327
  • 正文 我和宋清朗相戀三年屹徘,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片衅金。...
    茶點(diǎn)故事閱讀 38,654評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡噪伊,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出氮唯,到底是詐尸還是另有隱情鉴吹,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布惩琉,位于F島的核電站豆励,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏瞒渠。R本人自食惡果不足惜良蒸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望伍玖。 院中可真熱鬧嫩痰,春花似錦、人聲如沸窍箍。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,762評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至纺棺,卻和暖如春榄笙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背祷蝌。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,993評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工茅撞, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人杆逗。 一個(gè)月前我還...
    沈念sama閱讀 46,382評(píng)論 2 360
  • 正文 我出身青樓乡翅,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親罪郊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蠕蚜,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容