最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

TypeScript配置文件tsconfig.json詳解

 更新時間:2025年05月06日 14:16:28   作者:聒噪,  
這篇文章主要介紹了TypeScript配置文件tsconfig.json的使用,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

生成tsconfig.json

這個文件是通過tsc --init命令生成的,在桌面上新建一個文件夾TsDemo,然后打開VSCode,把文件托到編輯器中,然后打開終端Terminal,輸入tsc --init。

輸入完成后,就會出現(xiàn)tsconfig.json文件,你可以打開簡單的看一下,不過此時你可能看不懂。

其實它就是用來配置如何對ts文件進行編譯的,我們都叫它 typescript 的編譯配置文件。

如果此時你的tsc執(zhí)行不了,很有可能是你沒有全局安裝 TypeScript,可以全局安裝一下。

讓tsconfig.json 文件生效

你現(xiàn)在可以在文件夾跟目錄建立一個demo.ts文件,然后編寫一些最簡單的代碼,代碼如下:

const person:string = 'Riven';

這時候我們不在使用ts-node直接執(zhí)行了,需要用tsc demo.ts進行編譯,編譯后會得到demo.js文件。

生成的代碼如下:

var person = 'Riven';

這時候好像一切都是正常的,但是我要告訴你的真相是tsconfig.json這個編譯配置文件并沒有生效。

此時我們打開tsconfig.json文件,找到complilerOptions屬性下的removeComments:true選項,把注釋去掉。

這個配置項的意思是,編譯時不顯示注釋,也就是編譯出來的js文件不顯示注釋內(nèi)容。

現(xiàn)在你在文件中加入一些注釋,比如:

// I love Riven
const person:string = 'Riven';

這時候再運行編譯代碼tsc demo.ts,編譯后打開demo.js文件,你會發(fā)現(xiàn)注釋依然存在,說明tsconfig.json文件沒有起作用。

如果要想編譯配置文件起作用,我們可以直接運行tsc命令,這時候tsconfig.json才起作用,可以看到生成的js文件已經(jīng)不帶注釋了。

include,exclude,和files

那現(xiàn)在又出現(xiàn)問題了,如果我們的跟目錄下有多個ts文件,我們卻只想編譯其中的一個文件時,如何作?

我們在項目根目錄,新建一個文件demo2.ts文件,然后也寫一段最簡單的 ts 代碼。

const person2:string = '翠花';

如果這時候我們在終端里運行tsc,雖然tsconfig.json生效了,但是兩個文件都被我們編譯了。

這不是你想要的結(jié)果,我們可以用三種辦法解決這個問題。

第一種:使用 include 配置

include屬性是用來指定要編譯的文件的,比如現(xiàn)在我們只編譯demo.ts文件,而不編譯demo2.ts文件,就可以這樣寫。

寫配置文件時有個坑需要注意,就是配置文件不支持單引號,所以里邊都要使用雙引號。

{
  "include":["demo.ts"],
  "compilerOptions": {
      //any something
      //........
  }
}

這時候再編譯,就只編譯demo.ts文件了。

第二種:使用 exclude 配置

include是包含的意思,exclude是不包含,除什么文件之外,意思是寫再這個屬性之外的而文件才進行編譯。

比如你還是要編譯demo.ts文件,這時候的寫法就應(yīng)該是這樣了。

{
   "exclude":["demo2.ts"],
  "compilerOptions": {
      //any something
      //........
  }
}

這樣寫依然只有demo.ts被編譯成了js文件。

第三種:使用 files 配置

files的配置效果和include幾乎一樣,我是沒找出有什么不同,只要配置到里邊的文件都可以編譯。

{
  "files":["demo.ts"],
  "compilerOptions": {
      //any something
      //........
  }
}

結(jié)果是依然只有demo.ts文件被編譯。

下來我們學習下compilerOptions配置項,它是告訴TypeScript具體如何編譯成js文件的,里邊的配置項非常多,這節(jié)我們先來講幾個簡單的配置項,目的是讓你熟悉compilerOptions的使用方法。

removeComments 屬性

removeComments是complerOptions里的一個子屬性,它的用處是告訴TypeScript對編譯出來的js文件是否顯示注釋(注解)。比如我們現(xiàn)在把removeComments的值設(shè)置為true,就是在js中不顯示注釋。這個上面我們有用過!

strict 屬性

strict屬性如果設(shè)置為true,就代表我們的編譯和書寫規(guī)范,要按照TypeScript最嚴格的規(guī)范來寫,如果我們把這個設(shè)置為false或者注釋掉,意思是我們可以對設(shè)置一些不嚴格的寫法。

noImplicitAny屬性

noImplicitAny屬性的作用是,允許你的注解類型 any 不用特意表明,只聽概念很難理解。如果你只看官方 API,你可能要迷糊一陣啥叫允許你的注解類型any不用特意表明,這就是每個漢字我都認識,連在一期就不知道啥意思的最好詮釋。

為了更好的說明,我們舉個例子,在demo.ts里,刪除剛才的代碼,然后寫一個方法,方法的參數(shù)我們設(shè)置成任意類型(any)。

function riven(name) {
    return name;
  }

這時候我們的TypeScript是進行報錯的,我們用tsc編譯也是報錯的。這就是因為我們開啟了strict:true,我們先注釋掉,然后把noImplicitAny的值設(shè)置為false,就不再報錯了。

如果設(shè)置為noImplicitAny:true,意思就是值就算是 any(任意值),你也要進行類型注釋。

function riven(name:any) {
    return name;
  }

你可以簡單的理解為,設(shè)置為 true,就是必須明確置頂 any 類型的值。

strictNullChecks屬性

我們先把strictNullChecks設(shè)置為false,它的意思就是,不強制檢查 NULL 類型。

我們舉個例子,讓你能一下子就明白,還是刪除demo.ts里的代碼,然后編寫代碼.

const riven: string = null;

代碼寫完后,你會發(fā)現(xiàn)這段代碼是不報錯的,如果是以前,一定是報錯的,這就是我們配置了“不強制檢驗 null 類型”。

如果你設(shè)成strictNullChecks:true,這時候就報錯了。

ts-node遵循tsconfig.js

有的小伙伴問我了,tsc fileName 是沒辦法遵循tsconfig.js文件的,那ts-node是否遵循?

這里直接告訴你答案,ts-node是遵循的,感興趣的可以自行試一下。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • TS中Array.reduce提示沒有與此調(diào)用匹配的重載解析

    TS中Array.reduce提示沒有與此調(diào)用匹配的重載解析

    這篇文章主要為大家介紹了TS中Array.reduce提示沒有與此調(diào)用匹配的重載解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • 移動設(shè)備web開發(fā)首選框架:zeptojs介紹

    移動設(shè)備web開發(fā)首選框架:zeptojs介紹

    這篇文章主要介紹了移動設(shè)備web開發(fā)首選框架:zeptojs介紹,他兼容jquery的API,所以學起來或用起來并不吃力,需要的朋友可以參考下
    2015-01-01
  • require.js使用方法的簡單代碼講解筆記

    require.js使用方法的簡單代碼講解筆記

    頁面需要加載多個js文件時,加載時瀏覽器會停止網(wǎng)頁渲染,加載文件越多,網(wǎng)頁失去響應(yīng)的時間就會越長;由于js文件之間存在依賴關(guān)系,必須嚴格保證加載順序,當依賴關(guān)系很復(fù)雜的時候,代碼的編寫和維護都會變得困難。這種情況下require.js插件應(yīng)運而生。
    2022-12-12
  • TypeScript類型實現(xiàn)加減乘除詳解

    TypeScript類型實現(xiàn)加減乘除詳解

    這篇文章主要為大家介紹了TypeScript類型實現(xiàn)加減乘除示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • 前端構(gòu)建 Less入門(CSS預(yù)處理器)

    前端構(gòu)建 Less入門(CSS預(yù)處理器)

    眾多CSS預(yù)處理器中Less的語法最接近原生CSS,因此相對來說更容易上手,假如有JS、C#等編程經(jīng)驗的話,其實上述的幾種預(yù)處理器的學習成本也不會特別高。下面是我們這陣子的學習筆記,以便日后查閱
    2017-03-03
  • requireJS使用指南

    requireJS使用指南

    如今最常用的JavaScript庫之一是RequireJS。最近我參與的每個項目,都用到了RequireJS,或者是我向它們推薦了增加RequireJS。在這篇文章中,我將描述RequireJS是什么,以及它的一些基礎(chǔ)場景。 
    2016-04-04
  • TypeScript學習輕松玩轉(zhuǎn)類型操作

    TypeScript學習輕松玩轉(zhuǎn)類型操作

    這篇文章主要為大家介紹了TypeScript學習輕松玩轉(zhuǎn)類型操作,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • layui中的layer彈出層自定義樣式更改背景

    layui中的layer彈出層自定義樣式更改背景

    layui中的layer彈出層有很多提示框,但是我們使用最多的應(yīng)該就幾種,layer.msg、layer.alert、layer.open、layer.load等。layer?有內(nèi)置的skin:layui-layer-lan,layui-layer-molv,可以直接使用。skin不僅允許你傳入layer內(nèi)置的樣式class名,可以自定義class名。
    2023-06-06
  • TypeScript前端上傳文件到MinIO示例詳解

    TypeScript前端上傳文件到MinIO示例詳解

    這篇文章主要為大家介紹了TypeScript前端上傳文件到MinIO示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • 如何解決tsconfig.json配置不生效的問題

    如何解決tsconfig.json配置不生效的問題

    這篇文章主要介紹了如何解決tsconfig.json配置不生效的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-05-05

最新評論

施秉县| 苍梧县| 梧州市| 丘北县| 团风县| 横峰县| 禄丰县| 金秀| 阜宁县| 宕昌县| 弥勒县| 师宗县| 东宁县| 大新县| 泰安市| 梨树县| 建昌县| 德清县| 聂拉木县| 麦盖提县| 大足县| 肇源县| 固镇县| 航空| 镇巴县| 保山市| 宜兰市| 石林| 屏山县| 福建省| 白玉县| 故城县| 朝阳县| 宕昌县| 宜春市| 顺平县| 湄潭县| 黄骅市| 东阳市| 景德镇市| 乌鲁木齐市|