<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          TypeScript 入門應(yīng)用:類型系統(tǒng)和配置文件

          共 1859字,需瀏覽 4分鐘

           ·

          2021-07-06 17:19


          安裝及使用


          npm install typescript  -g 進(jìn)行全局安裝,也可以使用 npm install typescript -D 作為項(xiàng)目的開發(fā)依賴項(xiàng)。


          TypeScript 代碼默認(rèn)以 .ts 后綴結(jié)尾,我們創(chuàng)建一個 index.ts 文件,寫入以下代碼:



          代碼中,我們使用了 ES6 中的箭頭函數(shù)及模板字符等新的語法特性,然后,在命令行中執(zhí)行 tsc  index.ts 進(jìn)行編譯后,我們能夠得到一個同名的 index.js 文件,內(nèi)容如下:


                                

          此時我們會發(fā)現(xiàn),編譯過后的文件,已經(jīng)被轉(zhuǎn)譯為了標(biāo)準(zhǔn)的 ES3 規(guī)范的代碼。這就是我們說的 TS 編譯轉(zhuǎn)換新特性的能力。


          類型系統(tǒng)的使用的也非常簡單,在需要標(biāo)準(zhǔn)的地方,使用類型名稱即可,一旦為某個變量標(biāo)注了類型之后,如果沒有給與對應(yīng)類型的數(shù)據(jù),在編譯時就會報錯,比如,這樣的代碼:



          報錯:



          同時,在 VS Code 編輯器中,還會有紅色的波浪線,鼠標(biāo)懸浮后,會出現(xiàn)如下提示信息:


          使用命令 tsc --locale zh-CN 可以打印出中文形式的提示信息,方便英文不好的同志們。

           


          配置文件


          tsc 命令不僅可以編譯指定的某個 ts 文件,還可以編譯整個項(xiàng)目或整個工程。在使用之前,我們需要一個配置文件來對設(shè)置不同的編譯選項(xiàng),使用 tsc --init 生成一個名為 tsconfig.json 的 ts 配置文件,compilerOptions 就是 ts 編譯器所對應(yīng)的一些選項(xiàng),其中大部分都已經(jīng)被注釋掉了,且每個選項(xiàng)后面都有對應(yīng)的選項(xiàng)說明。


          這里對于一些常用的選項(xiàng)從上往下的順序做一個簡單解釋:

           


          修改好各項(xiàng)配置之后,我們就可以使用 tsc index.ts 命令進(jìn)行編譯了,但是在配置文件中的選型好像并沒有起作用,這是因?yàn)?/span>配置文件是對整個項(xiàng)目工程起作用的,并不對編譯一個具體指定的 ts 文件有效。因此,我們在命令行中可以直接使用 tsc 命令而不需要指定具體的那個文件。

           

          原始類型



          "strict": false, 配置項(xiàng)是對所有類型開啟或關(guān)閉嚴(yán)格模式,如果想具體控制,可以在配置文件中具體修改。






          聯(lián)合類型



          接著我們使用來看 Symbol 類型:




          錯誤提示如下圖:



          這是什么原因呢?

           

          標(biāo)準(zhǔn)庫聲明


          Symbol 是 ES2015 標(biāo)準(zhǔn)中定義的成員,使用它的前提是必須確保有對應(yīng)的 ES2015 標(biāo)準(zhǔn)庫引用,我們可以修改 tsconfig.json 中 target 或者讓 lib 選項(xiàng)包含 ES2015 就可以了。但是,這到底是為什么呢?


          其實(shí) Symbol 和其他的 String 或者 Number 一樣,只不過 Symbol 是 ES2015 中新的數(shù)據(jù)類型,當(dāng)我們在配置文件中定義好 target 選項(xiàng)后,會自動使用指定規(guī)范的標(biāo)準(zhǔn)庫引用,比如我們寫一個 Array ,鼠標(biāo)右擊,選擇 '轉(zhuǎn)到定義‘,就能夠看到具體的引用文件了。

           

          其實(shí)通過引用文件的文件名 lib.es5.d.ts 我們就能看到,當(dāng)前引入的是 es5 的標(biāo)準(zhǔn)庫,而 Symbol 是 es2015 中的新特性,如果直接修改 target 顯然不夠靈活,其實(shí)像 promise 也會出現(xiàn)類似的情況。最好的辦法還是使用 lib 選項(xiàng),來引入對應(yīng)的標(biāo)準(zhǔn)庫:"lib": ["es2015"], 但是這樣就會覆蓋默認(rèn)引入的標(biāo)準(zhǔn)庫 DOM ,所以我們就需要再添加對 DOM 的引入"lib":["es2015","DOM"],

           

          其實(shí)標(biāo)準(zhǔn)庫就是內(nèi)置對象所對應(yīng)的聲明,我們在代碼中使用內(nèi)置對象,就必須要引入對應(yīng)的標(biāo)準(zhǔn)庫,否則找不到對應(yīng)的類型就會報錯了。

           

          未完待續(xù)...


          推薦閱讀:

          TypeScript 從入門到放棄(一)

          前端工程化中的重要環(huán)節(jié)——自動化構(gòu)建

          效率提升利器:你還害怕自動化部署嗎


          更新不易,點(diǎn)個“在看”和“”吧(●'?'●)!

          瀏覽 53
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  夜夜操狠狠操 | 亚洲午夜无码久久久A | 国产特级AAAAAA大片 | 神马午夜久 | 国产韩国精品 |