成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

TypeScript學(xué)習(xí)1-背景和簡(jiǎn)單介紹

dailybird / 3543人閱讀

摘要:出現(xiàn)的背景前端項(xiàng)目趨向工程化之后,模塊化開發(fā)模式開始成為主流公用的邏輯和都被抽出來,獨(dú)立成模塊,供外部調(diào)用。的強(qiáng)類型等語法檢查和編譯都是在編譯時(shí)實(shí)現(xiàn)的,運(yùn)行時(shí)還是。靜態(tài)類型靜態(tài)類型是的核心特性。先通過示例來看看和的對(duì)比。

TypeScript出現(xiàn)的背景

前端項(xiàng)目趨向工程化之后,模塊化開發(fā)模式開始成為主流:

公用的邏輯和UI都被抽出來,獨(dú)立成模塊,供外部調(diào)用。在調(diào)用這些模塊時(shí),就會(huì)面臨著溝通問題,我們要知道如何去調(diào)用,參數(shù)是什么,返回值是什么,它們的類型和結(jié)構(gòu)?

傳統(tǒng)的做法

第三方庫,如JQuery,你想通過看源文件來查看如何調(diào)用,難度很大,一般都是壓縮混淆過的。只能訪問技術(shù)文檔網(wǎng)站,查API文檔。

內(nèi)部的庫,有寫文檔最好,可以讀文檔。沒有寫文檔的,只能去讀源代碼,或當(dāng)面去問。

存在的問題

第三方庫,文檔一般都是維護(hù)較好的,多花一點(diǎn)時(shí)間去讀文檔就ok了

內(nèi)部庫,如果文檔維護(hù)不好,可能會(huì)出現(xiàn)用法不對(duì),出現(xiàn)問題,影響開發(fā)質(zhì)量和進(jìn)度

什么是TypeScript

TypeScript是JavaScript的超集,在它的基礎(chǔ)上設(shè)計(jì)了一套新語法,提供了靜態(tài)類型,高級(jí)數(shù)據(jù)類型等語言特性。但最終還是編譯成JavaScript執(zhí)行。

TypeScript的強(qiáng)類型等語法檢查和編譯都是在編譯時(shí)實(shí)現(xiàn)的,運(yùn)行時(shí)還是JavaScript。

靜態(tài)類型

靜態(tài)類型是TypeScript的核心特性。
先通過示例來看看JavaScript和TypeScript的對(duì)比。

// JavaScript
export function formatA(var1) {
    let ret;
    if(typeof var1 === "string") {
        ret = "[log]" + var1;
    } else {
        throw new Error("param must be a string!");
    }
    
    return ret;
}
// TypeScript
export function formatA(var1: string): string {
    let ret: string = "[log]" + var1;
    return ret;
}

更復(fù)雜一點(diǎn)的例子

// JavaScript
export const fetch = function (url, params, user) {
  // dosomething

  return http(options).then(data => {
    return data
  }).catch(err => {
    return err
  })
}
// TypeScript

export interface User {
    userid: number,
    username: string,
    userTags?: Array
}

export const fetch = function (url: string | object, params?: any, user?: User): Promise {
  // dosomething

  return http(options).then(data => {
    return data
  }).catch(err => {
    return err
  })
}

對(duì)比下來,感受很明顯:

TypeScript參數(shù)和返回值類型明確,調(diào)用時(shí)不會(huì)用錯(cuò)

TypeScript中的數(shù)據(jù)結(jié)構(gòu)也是明確的,不需要查文檔也能確定如何使用

TypeScript讓代碼描述自身

IDE

VSCode對(duì)TypeScript支持也很友好,能達(dá)到強(qiáng)類型語言,如Java的語法提示體驗(yàn)。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/105502.html

相關(guān)文章

  • SegmentFault 技術(shù)周刊 Vol.40 - 2018,來學(xué)習(xí)一門新的編程語言吧!

    摘要:入門,第一個(gè)這是一門很新的語言,年前后正式公布,算起來是比較年輕的編程語言了,更重要的是它是面向程序員的函數(shù)式編程語言,它的代碼運(yùn)行在之上。它通過編輯類工具,帶來了先進(jìn)的編輯體驗(yàn),增強(qiáng)了語言服務(wù)。 showImg(https://segmentfault.com/img/bV1xdq?w=900&h=385); 新的一年不知不覺已經(jīng)到來了,總結(jié)過去的 2017,相信小伙們一定有很多收獲...

    caspar 評(píng)論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.40 - 2018,來學(xué)習(xí)一門新的編程語言吧!

    摘要:入門,第一個(gè)這是一門很新的語言,年前后正式公布,算起來是比較年輕的編程語言了,更重要的是它是面向程序員的函數(shù)式編程語言,它的代碼運(yùn)行在之上。它通過編輯類工具,帶來了先進(jìn)的編輯體驗(yàn),增強(qiáng)了語言服務(wù)。 showImg(https://segmentfault.com/img/bV1xdq?w=900&h=385); 新的一年不知不覺已經(jīng)到來了,總結(jié)過去的 2017,相信小伙們一定有很多收獲...

    nihao 評(píng)論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.40 - 2018,來學(xué)習(xí)一門新的編程語言吧!

    摘要:入門,第一個(gè)這是一門很新的語言,年前后正式公布,算起來是比較年輕的編程語言了,更重要的是它是面向程序員的函數(shù)式編程語言,它的代碼運(yùn)行在之上。它通過編輯類工具,帶來了先進(jìn)的編輯體驗(yàn),增強(qiáng)了語言服務(wù)。 showImg(https://segmentfault.com/img/bV1xdq?w=900&h=385); 新的一年不知不覺已經(jīng)到來了,總結(jié)過去的 2017,相信小伙們一定有很多收獲...

    Drummor 評(píng)論0 收藏0
  • 前端每周清單半年盤點(diǎn)之 JavaScript 篇

    摘要:前端每周清單專注前端領(lǐng)域內(nèi)容,以對(duì)外文資料的搜集為主,幫助開發(fā)者了解一周前端熱點(diǎn)分為新聞熱點(diǎn)開發(fā)教程工程實(shí)踐深度閱讀開源項(xiàng)目巔峰人生等欄目。背后的故事本文是對(duì)于年之間世界發(fā)生的大事件的詳細(xì)介紹,闡述了從提出到角力到流產(chǎn)的前世今生。 前端每周清單專注前端領(lǐng)域內(nèi)容,以對(duì)外文資料的搜集為主,幫助開發(fā)者了解一周前端熱點(diǎn);分為新聞熱點(diǎn)、開發(fā)教程、工程實(shí)踐、深度閱讀、開源項(xiàng)目、巔峰人生等欄目。歡迎...

    Vixb 評(píng)論0 收藏0
  • 2019年前端趨勢(shì)分析

    摘要:據(jù)狀態(tài)調(diào)查顯示,只有的前端開發(fā)人員使用過,但是有驚人的的開發(fā)人員已經(jīng)聽說過它并希望使用它。事實(shí)上,在調(diào)查中,的評(píng)分高于本身,為,而最受喜愛的語言為。在年,的下載數(shù)量大幅增長(zhǎng),而保持不變。 2018年TypeScript 全面開花,GraphQL 蠢蠢欲動(dòng),WebAssembly 更是打開了瀏覽器上多語言的大門。所有這一切跟現(xiàn)在的前端有哪些關(guān)系呢?下面小編來分享一下 1.三大框架標(biāo)準(zhǔn)化 ...

    Anonymous1 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<