typescript入門

我個(gè)人的理解:typescript就是在javascript的基礎(chǔ)上添加了 類型聲明機(jī)制铭若、添加了接口枚舉類型
作用:減少類型錯(cuò)誤辆琅、增加代碼提示笙什、語(yǔ)義化代碼

聲明文件

聲明文件是以.d.ts為后綴的文件即供,開(kāi)發(fā)者在聲明文件中編寫(xiě)類型聲明,TypeScript根據(jù)聲明文件的內(nèi)容進(jìn)行類型檢查扫茅。(注意同目錄下最好不要有同名的.ts文件和.d.ts蹋嵌,例如lib.tslib.d.ts,否則模塊系統(tǒng)無(wú)法只根據(jù)文件名加載模塊)

為什么需要聲明文件呢葫隙?我們知道TypeScript根據(jù)類型聲明進(jìn)行類型檢查栽烂,但有些情況可能沒(méi)有類型聲明:

  • 第三方包,因?yàn)榈谌桨虬蠖际?code>JavaScript語(yǔ)法恋脚,而非TypeScript腺办,沒(méi)有類型。
  • 宿主環(huán)境擴(kuò)展糟描,如一些hybrid環(huán)境怀喉,在window變量下有一些bridge接口,這些接口沒(méi)有類型聲明蚓挤。

項(xiàng)目集成typescript后磺送,整個(gè)項(xiàng)目只會(huì)編譯校驗(yàn)typescript文件,所以項(xiàng)目中要書(shū)寫(xiě)typescript

  • 第三方javascript庫(kù)文件灿意,如果本身有聲明文件,則可以直接使用
  • 第三方javascript庫(kù)文件崇呵,如果沒(méi)有聲明文件缤剧,則要在項(xiàng)目?jī)?nèi)書(shū)寫(xiě)響應(yīng)的聲明文件

總結(jié)一下,TypeScript會(huì)在特定的目錄讀取指定的聲明文件

  • 在內(nèi)部項(xiàng)目中域慷,TypeScript會(huì)讀取tsconfig.json中的文件集合荒辕,在其中的聲明文件才會(huì)被處理。
  • 讀取node_modules中各第三方包的package.jsontypes或者typing指定的文件犹褒。
  • 讀取@types目錄下同名包的聲明文件抵窒。

變量聲明

let isDone: boolean = false
let list: Array<number> = [1, 2, 3]
function add(x: number, y: number): number {
    return x + y;
}
interface Params {
  a: string
}

function sub(params: Params):void{
}

枚舉

enum Direction {
  Up, // 默認(rèn) 0
  Down, //默認(rèn) 1
  Left = 4, // 默認(rèn) 2,修改成4
  Right, //默認(rèn)3
}

接口

interface SquareConfig {
  Color: string;
  Width?: number; // 可選
  readonly Age: number; // 只能在對(duì)象剛剛創(chuàng)建的時(shí)候修改其值
}

class Animals {
  public name:string;
  private age: number; // private變量只能在本類內(nèi)訪問(wèn)
  protected sex: string; // protected 可以在子類中訪問(wèn)
  constructor(theName: string){
    this.name = theName
  }
  
  class Dog extends Animals {
    constructor(){
      super('dog')
    }
  }
}

模塊

模式參考esModule

// demo.ts
export class Dog { ... }
export class Cat { ... }
export class Tree { ... }
export class Flower { ... }
export default const One = 1
import { Dog } from './demo.ts'
import * as Animals from './demo.ts'
import One from './demo.ts'

命名空間

namespace Animals {
  class Dog {}
}
const dog = new Animals.Dog()

declear聲明文件

在 TS 中使用非 TS 編寫(xiě)的第三方庫(kù),需要有個(gè) xx.d.ts 聲明文件
關(guān)鍵字 declare 表示聲明的意思叠骑,我們可以用它來(lái)做出各種聲明

declare var // 聲明全局變量
declare function // 聲明全局方法
declare class // 聲明全局類
declare enum // 聲明全局枚舉類型
declare namespace // 聲明(含有子屬性的)全局對(duì)象
interface 和 type // 聲明全局類型
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末李皇,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子宙枷,更是在濱河造成了極大的恐慌掉房,老刑警劉巖茧跋,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異卓囚,居然都是意外死亡瘾杭,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門哪亿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)粥烁,“玉大人,你說(shuō)我怎么就攤上這事蝇棉∫承欤” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵银萍,是天一觀的道長(zhǎng)变勇。 經(jīng)常有香客問(wèn)我,道長(zhǎng)贴唇,這世上最難降的妖魔是什么搀绣? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮戳气,結(jié)果婚禮上链患,老公的妹妹穿的比我還像新娘。我一直安慰自己瓶您,他們只是感情好麻捻,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著呀袱,像睡著了一般贸毕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上夜赵,一...
    開(kāi)封第一講書(shū)人閱讀 51,301評(píng)論 1 301
  • 那天明棍,我揣著相機(jī)與錄音,去河邊找鬼寇僧。 笑死摊腋,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的嘁傀。 我是一名探鬼主播兴蒸,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼细办!你這毒婦竟也來(lái)了橙凳?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎痕惋,沒(méi)想到半個(gè)月后区宇,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡值戳,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年议谷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片堕虹。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡卧晓,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出赴捞,到底是詐尸還是另有隱情逼裆,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布赦政,位于F島的核電站胜宇,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏恢着。R本人自食惡果不足惜桐愉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望掰派。 院中可真熱鬧从诲,春花似錦、人聲如沸靡羡。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)略步。三九已至描扯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間纳像,已是汗流浹背荆烈。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留竟趾,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓宫峦,卻偏偏與公主長(zhǎng)得像岔帽,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子导绷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

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