国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 web前端 js教程 TypeScript:TSConfig 選項入門

TypeScript:TSConfig 選項入門

Jan 13, 2025 pm 02:30 PM

什麼是 TypeScript?

TypeScript 是 JavaScript 的超集。這意味著您可以在 TypeScript 中使用 JavaScript 語法,因此最好在開始使用 TypeScript 之前學(xué)習(xí) JavaScript。有了這個免責(zé)聲明,讓我們來談?wù)?TypeScript 是什麼以及如何為 TypeScript 設(shè)定專案。

根據(jù)TypeScript 的文檔,「TypeScript 是一種基於JavaScript 構(gòu)建的強類型程式語言?!筟1] TypeScript 語言添加了類型語法來幫助您在開發(fā)過程中及早發(fā)現(xiàn)錯誤,並在開發(fā)團隊成長的過程中保持保障措施隨著專案規(guī)模的擴大。 TypeScript 可讓您定義變數(shù)的資料類型和物件的介面。 TypeScript 使用這些定義來檢查您的程式碼在編譯時是否有錯誤,並在您不遵循事先設(shè)定的定義時通知您。

如果您在想,「既然我一開始就可以更加小心,為什麼我需要編寫更多程式碼來使用TypeScript?」你沒有錯,但人類會犯錯,而且我們在長時間工作時經(jīng)常會犯錯誤。如果同樣的想法應(yīng)用在施工中,那麼額外的鷹架和安全程序?qū)⑿枰嗟墓ぷ骱蜁r間,而我們只要在工地小心一點就可以節(jié)省時間。

TypeScript: Getting Started With TSConfig Options

看到了嗎?為了節(jié)省時間,這位屋頂工人可能浪費了更多的時間和資源。這只是一名工人。想像一下,隨著更多團隊成員的加入,一個工作團隊正在處理一個專案。這就是軟體開發(fā)的現(xiàn)實;從長遠來看,制定一個計劃來發(fā)現(xiàn)這些錯誤將對您和您的團隊有所幫助。

TypeScript 範(fàn)例

以下範(fàn)例來自 TypeScript 文件[2],但註解是我的。

打字稿:

function greet(person, date) {
  console.log(`Hello ${person}, today is ${date}!`);
}

greet("Brendan");

TypeScript 將在呼叫g(shù)reet 時擷取錯誤。我們定義greet 來接收兩個參數(shù):person 和date,我們只提供person。 TypeScript 在編譯程式碼時會捕獲此錯誤,並讓您知道它需要第二個參數(shù)。在某種程度上,TypeScript 可以被視為程式碼的 linter,以便在您工作時捕獲這些錯誤,但我們可以利用類型語法來進一步幫助我們。

function greet(person: string, date: Date) {
  console.log(`Hello ${person}, today is ${date.toDateString()}!`);
}

greet("Maddison", Date());

現(xiàn)在,我們?yōu)?toDateString 方法的兩個參數(shù)新增一個類型,person 必須是字串,date 必須是 Date 物件。當(dāng)在第二個參數(shù) Date() 之前不使用關(guān)鍵字 new 來呼叫g(shù)reet時,TypeScript 會讓您知道它收到了一個字串,而不是日期參數(shù)的 Date?,F(xiàn)在,您可以在進一步開發(fā)之前修復(fù)錯誤,並且在測試時收到意外輸出時必須追溯到此錯誤。

現(xiàn)在您已經(jīng)看到了 TypeScript 的實際應(yīng)用,讓我們檢查一下設(shè)定項目以使用它的後續(xù)步驟。

配置 TypeScript 的編譯器:tsconfig.json

預(yù)設(shè)的 TypeScript 編譯可能不是您想要的,有一種方法可以根據(jù)您的需求自訂 TypeScript,類似於使用 linter,但它可以做更多的事情。

第一步是在專案的根目錄中建立一個 tsconfig.json 檔案。文件告訴 TypeScript 編譯過程中應(yīng)包含哪些檔案。在 tsconfig.json 中,如果您希望使用 JSON 檔案的「includes」鍵來獲得更多特異性,則可以指定應(yīng)包含在根目錄中的目錄。

function greet(person, date) {
  console.log(`Hello ${person}, today is ${date}!`);
}

greet("Brendan");

現(xiàn)在,我們來談?wù)劇竎ompilerOptions」。相信我,有很多選擇可供選擇。這是一件好事,但如果這是您第一次使用 TypeScript,也會很可怕。我將分解一些流行的選擇來幫助您入門:

允許

function greet(person: string, date: Date) {
  console.log(`Hello ${person}, today is ${date.toDateString()}!`);
}

greet("Maddison", Date());

此選項允許將 JavaScript 檔案匯入到您的專案中,而不僅僅是 TypeScript。通常,TypeScript 假定所有導(dǎo)入都是 TypeScript,並且會對導(dǎo)入的 JavaScript 檔案給予錯誤,但此選項允許我們使用這些導(dǎo)入,並且在同一儲存庫中使用 TypeScript 和 JavaScript 時會很有幫助。

esModuleInterop

{
  "include": ["src/**/*"]
}

ES6 中的命名空間導(dǎo)入只能是一個對象,但由於這與使用不帶 .default 的 require 相同,因此我們允許 TypeScript 將對象視為函數(shù)。當(dāng) TypeScript 將程式碼轉(zhuǎn)換為 JavaScript 時,此選項將解決此問題,而不必小心我們的導(dǎo)入。

目標(biāo)

{
  "compilerOptions": {
    "allowJs": true
  }
}

當(dāng) TypeScript 將程式碼轉(zhuǎn)換為 JavaScript 時,此選項會變更哪些 JS 功能被降級以及哪些功能保持不變。 es6 是一個不錯的選擇,因為大多數(shù)現(xiàn)代瀏覽器都支援 ES6,但您可以為此選項指定任何版本的 ECMAScript 以滿足您的需求。

嚴(yán)格的

{
  "compilerOptions": {
    "esModuleInterop": true
  }
}

此標(biāo)誌支援許多不同的類型檢查行為。這將帶來更強大的程式碼庫和更少的錯誤。如果您想排除某些類型檢查行為,請檢查文件 [3] 並將其選項設(shè)為 false。如果您只想要一些類型檢查行為,我會考慮打開它們而不是使用 strict。

輸出目錄

{
  "compilerOptions": {
    "target": "es6"
  }
}

當(dāng) TypeScript 將程式碼轉(zhuǎn)換為可用的 JavaScript 時,此選項會將這些檔案傳送到此目錄中。

不發(fā)射

function greet(person, date) {
  console.log(`Hello ${person}, today is ${date}!`);
}

greet("Brendan");

此選項會停止發(fā)出所有已轉(zhuǎn)譯的 JavaScript 檔案。這可能聽起來很愚蠢,因為我剛剛告訴您有關(guān) outDir 的信息,但 TypeScript 始終會發(fā)出文件,而 outDir 會將文件定向到正確的位置。當(dāng)您已經(jīng)使用 Babel 或 Webpack 等其他工具來轉(zhuǎn)譯和捆綁代碼時,noEmit 就會發(fā)揮作用。在這種情況下發(fā)出意味著創(chuàng)建無用的 JavaScript 檔案。

結(jié)論

給你了。這七個選項可協(xié)助您設(shè)定 TypeScript 配置以及 TypeScript 如何協(xié)助您建立更穩(wěn)定的程式碼庫。我建議閱讀 Matt Pocock 的“TSConfig Cheat Sheet”,以了解更多流行的選項以放入 tsconfig.json 中,並在實現(xiàn)任何這些選項之前始終參考 TSConfig 上的 TypeScript 文件。

編碼快樂!
泰勒·邁耶

資料來源:

[1] https://www.typescriptlang.org/

[2] https://www.typescriptlang.org/docs/handbook/2/basic-types.html

[3] https://www.typescriptlang.org/tsconfig/

[4] https://www.totaltypescript.com/tsconfig-cheat-sheet

以上是TypeScript:TSConfig 選項入門的詳細內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Java vs. JavaScript:清除混亂 Java vs. JavaScript:清除混亂 Jun 20, 2025 am 12:27 AM

Java和JavaScript是不同的編程語言,各自適用於不同的應(yīng)用場景。 Java用於大型企業(yè)和移動應(yīng)用開發(fā),而JavaScript主要用於網(wǎng)頁開發(fā)。

JavaScript評論:簡短說明 JavaScript評論:簡短說明 Jun 19, 2025 am 12:40 AM

JavascriptconcommentsenceenceEncorenceEnterential gransimenting,reading and guidingCodeeXecution.1)單inecommentsareusedforquickexplanations.2)多l(xiāng)inecommentsexplaincomplexlogicorprovideDocumentation.3)

如何在JS中與日期和時間合作? 如何在JS中與日期和時間合作? Jul 01, 2025 am 01:27 AM

JavaScript中的日期和時間處理需注意以下幾點:1.創(chuàng)建Date對像有多種方式,推薦使用ISO格式字符串以保證兼容性;2.獲取和設(shè)置時間信息可用get和set方法,注意月份從0開始;3.手動格式化日期需拼接字符串,也可使用第三方庫;4.處理時區(qū)問題建議使用支持時區(qū)的庫,如Luxon。掌握這些要點能有效避免常見錯誤。

為什麼要將標(biāo)籤放在的底部? 為什麼要將標(biāo)籤放在的底部? Jul 02, 2025 am 01:22 AM

PlacingtagsatthebottomofablogpostorwebpageservespracticalpurposesforSEO,userexperience,anddesign.1.IthelpswithSEObyallowingsearchenginestoaccesskeyword-relevanttagswithoutclutteringthemaincontent.2.Itimprovesuserexperiencebykeepingthefocusonthearticl

JavaScript與Java:開發(fā)人員的全面比較 JavaScript與Java:開發(fā)人員的全面比較 Jun 20, 2025 am 12:21 AM

JavaScriptIspreferredforredforwebdevelverment,而Javaisbetterforlarge-ScalebackendsystystemsandSandAndRoidApps.1)JavascriptexcelcelsincreatingInteractiveWebexperienceswebexperienceswithitswithitsdynamicnnamicnnamicnnamicnnamicnemicnemicnemicnemicnemicnemicnemicnemicnddommanipulation.2)

JavaScript:探索用於高效編碼的數(shù)據(jù)類型 JavaScript:探索用於高效編碼的數(shù)據(jù)類型 Jun 20, 2025 am 12:46 AM

javascripthassevenfundaMentalDatatypes:數(shù)字,弦,布爾值,未定義,null,object和symbol.1)numberSeadUble-eaduble-ecisionFormat,forwidevaluerangesbutbecautious.2)

什麼是在DOM中冒泡和捕獲的事件? 什麼是在DOM中冒泡和捕獲的事件? Jul 02, 2025 am 01:19 AM

事件捕獲和冒泡是DOM中事件傳播的兩個階段,捕獲是從頂層向下到目標(biāo)元素,冒泡是從目標(biāo)元素向上傳播到頂層。 1.事件捕獲通過addEventListener的useCapture參數(shù)設(shè)為true實現(xiàn);2.事件冒泡是默認行為,useCapture設(shè)為false或省略;3.可使用event.stopPropagation()阻止事件傳播;4.冒泡支持事件委託,提高動態(tài)內(nèi)容處理效率;5.捕獲可用於提前攔截事件,如日誌記錄或錯誤處理。了解這兩個階段有助於精確控制JavaScript響應(yīng)用戶操作的時機和方式。

Java和JavaScript有什麼區(qū)別? Java和JavaScript有什麼區(qū)別? Jun 17, 2025 am 09:17 AM

Java和JavaScript是不同的編程語言。 1.Java是靜態(tài)類型、編譯型語言,適用於企業(yè)應(yīng)用和大型系統(tǒng)。 2.JavaScript是動態(tài)類型、解釋型語言,主要用於網(wǎng)頁交互和前端開發(fā)。

See all articles