TypeScript的意義

大家可能常常會遇到這樣的場景:

  • 你調(diào)用一個別人寫的函數(shù)苔巨,很不幸咬扇,這個家伙沒有留下任何注釋此熬,為了搞清楚參數(shù)類型,你只能硬著頭皮去看里面的邏輯
  • 明明定義好了接口譬嚣,可一聯(lián)調(diào)就報錯了----“TypeError:Cannot read property 'length' of undefined"耙蔑。

歸根結(jié)底,這是因為javascript是一門動態(tài)弱類型語音孤荣,對變量的類型非常寬容,不會在這些變量和他們的調(diào)用者之間建立結(jié)構化的契約须揣。

var name = 'James';
var sum = 1 + 2;
name = sum;

該 name 變量開始“存有”一個字符串盐股,但現(xiàn)在它“存有”一個數(shù)字。這凸顯了 JavaScript 中變量和類型的基本特性

相比之下耻卡,我們可以將“靜態(tài)類型語言”typescript視為我們可以(也必須)將類型信息與特定變量相關聯(lián)的語言:

var name: string = ‘James’;

在這段代碼中疯汁,我們能夠更好地顯式聲明我們對變量 name 的意圖,我們希望它總是用作一個字符串卵酪。

TypeScript 的靜態(tài)類型注釋給我們的一個巨大的幫助幌蚊,它能夠清楚地表達我們對變量的意圖。這種改進不僅有益于 TypeScript 編譯器溃卡,還可以讓我們的同事和將來的自己明白我們的代碼溢豆。代碼是用來讀的。

var name: string = 'James';
var sum: number = 1 + 2;
name = sum;

如果我們使用 TypeScript 編譯器編譯這個代碼瘸羡,我們現(xiàn)在就會收到一個在 name = sum 這行的錯誤: Type 'number' is not assignable to type 'string'漩仙,我們的這種“偷渡”被警告,我們執(zhí)行的代碼可能有問題犹赖。重要的是队他,如果我們想要繼續(xù)執(zhí)行,我們可以選擇忽略 TypeScript 編譯器的錯誤峻村,因為它只是在將 JavaScript 代碼發(fā)送給我們的用戶之前給我們反饋的工具麸折。

那么坠韩,TypeScript究竟有哪些特性使得它成為大家的“剛需”
1悯衬,類型檢查。TypeScript會在編譯代碼時進行嚴格的靜態(tài)類型檢查艘刚。這意味著你可以在編碼階段發(fā)現(xiàn)可能存在的隱患雾棺,而不必把他們帶到線上膊夹。
2,語言擴展捌浩。TypeScript會包括來自ES6和未來提案中的特性放刨。
3,工具屬性尸饺。TypeScript能夠編譯成標準的javascript进统,無需運行時的任何額外開銷
4,IDE 智能提示助币。TypeScript 不僅自己寫的類庫有豐富的類型信息, 也可以對其他純 JS 項目進行類型標注 (DefinitelyTyped), 便于使用者直接在 IDE 中瀏覽 API, 效率大增.

tsconfig.json常用配置項:

{
  "compilerOptions": {
    "allowUnreachableCode": true, // 不報告執(zhí)行不到的代碼錯誤。
    "allowUnusedLabels": false, // 不報告未使用的標簽錯誤
    "alwaysStrict": false, // 以嚴格模式解析并為每個源文件生成 "use strict"語句
    "baseUrl": ".", // 工作根目錄
    "experimentalDecorators": true, // 啟用實驗性的ES裝飾器
    "jsx": "react", // 在 .tsx文件里支持JSX
    "sourceMap": true, // 是否生成map文件
    "module": "commonjs", // 指定生成哪個模塊系統(tǒng)代碼
    "noImplicitAny": false, // 是否默認禁用 any
    "removeComments": true, // 是否移除注釋
    "types": [ //指定引入的類型聲明文件螟碎,默認是自動引入所有聲明文件眉菱,一旦指定該選項,則會禁用自動引入掉分,改為只引入指定的類型聲明文件俭缓,如果指定空數(shù)組[]則不引用任何文件
      "node", // 引入 node 的類型聲明
    ],
    "paths": { // 指定模塊的路徑,和baseUrl有關聯(lián)酥郭,和webpack中resolve.alias配置一樣
      "src": [ //指定后可以在文件之直接 import * from 'src';
        "./src"
      ],
    },
    "target": "ESNext", // 編譯的目標是什么版本的
    "outDir": "./dist", // 輸出目錄
    "declaration": true, // 是否自動創(chuàng)建類型聲明文件
    "declarationDir": "./lib", // 類型聲明文件的輸出目錄
    "allowJs": true, // 允許編譯javascript文件华坦。
    "lib": [ // 編譯過程中需要引入的庫文件的列表
      "es5",
      "es2015",
      "es2016",
      "es2017",
      "es2018",
      "dom"
    ]
  },
  // 指定一個匹配列表(屬于自動指定該路徑下的所有ts相關文件)
  "include": [
    "src/**/*"
  ],
  // 指定一個排除列表(include的反向操作)
  "exclude": [
    "demo.ts"
  ],
  // 指定哪些文件使用該配置(屬于手動一個個指定文件)
  "files": [
    "demo.ts"
  ]
}

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市不从,隨后出現(xiàn)的幾起案子惜姐,更是在濱河造成了極大的恐慌,老刑警劉巖椿息,帶你破解...
    沈念sama閱讀 223,002評論 6 519
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件歹袁,死亡現(xiàn)場離奇詭異,居然都是意外死亡寝优,警方通過查閱死者的電腦和手機条舔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,357評論 3 400
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來乏矾,“玉大人逞刷,你說我怎么就攤上這事∑扌埽” “怎么了夸浅?”我有些...
    開封第一講書人閱讀 169,787評論 0 365
  • 文/不壞的土叔 我叫張陵,是天一觀的道長扔役。 經(jīng)常有香客問我帆喇,道長,這世上最難降的妖魔是什么亿胸? 我笑而不...
    開封第一講書人閱讀 60,237評論 1 300
  • 正文 為了忘掉前任坯钦,我火速辦了婚禮,結(jié)果婚禮上侈玄,老公的妹妹穿的比我還像新娘婉刀。我一直安慰自己,他們只是感情好序仙,可當我...
    茶點故事閱讀 69,237評論 6 398
  • 文/花漫 我一把揭開白布突颊。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪律秃。 梳的紋絲不亂的頭發(fā)上爬橡,一...
    開封第一講書人閱讀 52,821評論 1 314
  • 那天,我揣著相機與錄音棒动,去河邊找鬼糙申。 笑死,一個胖子當著我的面吹牛船惨,可吹牛的內(nèi)容都是我干的柜裸。 我是一名探鬼主播,決...
    沈念sama閱讀 41,236評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼粱锐,長吁一口氣:“原來是場噩夢啊……” “哼粘室!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起卜范,我...
    開封第一講書人閱讀 40,196評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎鹿榜,沒想到半個月后海雪,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,716評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡舱殿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,794評論 3 343
  • 正文 我和宋清朗相戀三年奥裸,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沪袭。...
    茶點故事閱讀 40,928評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡湾宙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出冈绊,到底是詐尸還是另有隱情侠鳄,我是刑警寧澤,帶...
    沈念sama閱讀 36,583評論 5 351
  • 正文 年R本政府宣布死宣,位于F島的核電站伟恶,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏毅该。R本人自食惡果不足惜博秫,卻給世界環(huán)境...
    茶點故事閱讀 42,264評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望眶掌。 院中可真熱鬧挡育,春花似錦、人聲如沸朴爬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,755評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蒿叠,卻和暖如春明垢,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背市咽。 一陣腳步聲響...
    開封第一講書人閱讀 33,869評論 1 274
  • 我被黑心中介騙來泰國打工痊银, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人施绎。 一個月前我還...
    沈念sama閱讀 49,378評論 3 379
  • 正文 我出身青樓溯革,卻偏偏與公主長得像,于是被迫代替她去往敵國和親谷醉。 傳聞我的和親對象是個殘疾皇子致稀,可洞房花燭夜當晚...
    茶點故事閱讀 45,937評論 2 361