什麼是 TypeScript?
TypeScript 是 JavaScript 的超集。這意味著您可以在 TypeScript 中使用 JavaScript 語法,因此最好在開始使用 TypeScript 之前學習 JavaScript。有了這個免責聲明,讓我們來談談 TypeScript 是什麼以及如何為 TypeScript 設定專案。
根據TypeScript 的文檔,「TypeScript 是一種基於JavaScript 構建的強類型程式語言。」[1] TypeScript 語言添加了類型語法來幫助您在開發過程中及早發現錯誤,並在開發團隊成長的過程中保持保障措施隨著專案規模的擴大。 TypeScript 可讓您定義變數的資料類型和物件的介面。 TypeScript 使用這些定義來檢查您的程式碼在編譯時是否有錯誤,並在您不遵循事先設定的定義時通知您。
如果您在想,「既然我一開始就可以更加小心,為什麼我需要編寫更多程式碼來使用TypeScript?」你沒有錯,但人類會犯錯,而且我們在長時間工作時經常會犯錯誤。如果同樣的想法應用在施工中,那麼額外的鷹架和安全程序將需要更多的工作和時間,而我們只要在工地小心一點就可以節省時間。
看到了嗎?為了節省時間,這位屋頂工人可能浪費了更多的時間和資源。這只是一名工人。想像一下,隨著更多團隊成員的加入,一個工作團隊正在處理一個專案。這就是軟體開發的現實;從長遠來看,制定一個計劃來發現這些錯誤將對您和您的團隊有所幫助。
TypeScript 範例
以下範例來自 TypeScript 文件[2],但註解是我的。
打字稿:
function greet(person, date) { console.log(`Hello ${person}, today is ${date}!`); } greet("Brendan");
TypeScript 將在呼叫greet 時擷取錯誤。我們定義greet 來接收兩個參數:person 和date,我們只提供person。 TypeScript 在編譯程式碼時會捕獲此錯誤,並讓您知道它需要第二個參數。在某種程度上,TypeScript 可以被視為程式碼的 linter,以便在您工作時捕獲這些錯誤,但我們可以利用類型語法來進一步幫助我們。
function greet(person: string, date: Date) { console.log(`Hello ${person}, today is ${date.toDateString()}!`); } greet("Maddison", Date());
現在,我們為 toDateString 方法的兩個參數新增一個類型,person 必須是字串,date 必須是 Date 物件。當在第二個參數 Date() 之前不使用關鍵字 new 來呼叫greet時,TypeScript 會讓您知道它收到了一個字串,而不是日期參數的 Date。現在,您可以在進一步開發之前修復錯誤,並且在測試時收到意外輸出時必須追溯到此錯誤。
現在您已經看到了 TypeScript 的實際應用,讓我們檢查一下設定項目以使用它的後續步驟。
配置 TypeScript 的編譯器:tsconfig.json
預設的 TypeScript 編譯可能不是您想要的,有一種方法可以根據您的需求自訂 TypeScript,類似於使用 linter,但它可以做更多的事情。
第一步是在專案的根目錄中建立一個 tsconfig.json 檔案。文件告訴 TypeScript 編譯過程中應包含哪些檔案。在 tsconfig.json 中,如果您希望使用 JSON 檔案的「includes」鍵來獲得更多特異性,則可以指定應包含在根目錄中的目錄。
function greet(person, date) { console.log(`Hello ${person}, today is ${date}!`); } greet("Brendan");
現在,我們來談談「compilerOptions」。相信我,有很多選擇可供選擇。這是一件好事,但如果這是您第一次使用 TypeScript,也會很可怕。我將分解一些流行的選擇來幫助您入門:
允許
function greet(person: string, date: Date) { console.log(`Hello ${person}, today is ${date.toDateString()}!`); } greet("Maddison", Date());
此選項允許將 JavaScript 檔案匯入到您的專案中,而不僅僅是 TypeScript。通常,TypeScript 假定所有導入都是 TypeScript,並且會對導入的 JavaScript 檔案給予錯誤,但此選項允許我們使用這些導入,並且在同一儲存庫中使用 TypeScript 和 JavaScript 時會很有幫助。
esModuleInterop
{ "include": ["src/**/*"] }
ES6 中的命名空間導入只能是一個對象,但由於這與使用不帶 .default 的 require 相同,因此我們允許 TypeScript 將對象視為函數。當 TypeScript 將程式碼轉換為 JavaScript 時,此選項將解決此問題,而不必小心我們的導入。
目標
{ "compilerOptions": { "allowJs": true } }
當 TypeScript 將程式碼轉換為 JavaScript 時,此選項會變更哪些 JS 功能被降級以及哪些功能保持不變。 es6 是一個不錯的選擇,因為大多數現代瀏覽器都支援 ES6,但您可以為此選項指定任何版本的 ECMAScript 以滿足您的需求。
嚴格的
{ "compilerOptions": { "esModuleInterop": true } }
此標誌支援許多不同的類型檢查行為。這將帶來更強大的程式碼庫和更少的錯誤。如果您想排除某些類型檢查行為,請檢查文件 [3] 並將其選項設為 false。如果您只想要一些類型檢查行為,我會考慮打開它們而不是使用 strict。
輸出目錄
{ "compilerOptions": { "target": "es6" } }
當 TypeScript 將程式碼轉換為可用的 JavaScript 時,此選項會將這些檔案傳送到此目錄中。
不發射
function greet(person, date) { console.log(`Hello ${person}, today is ${date}!`); } greet("Brendan");
此選項會停止發出所有已轉譯的 JavaScript 檔案。這可能聽起來很愚蠢,因為我剛剛告訴您有關 outDir 的信息,但 TypeScript 始終會發出文件,而 outDir 會將文件定向到正確的位置。當您已經使用 Babel 或 Webpack 等其他工具來轉譯和捆綁代碼時,noEmit 就會發揮作用。在這種情況下發出意味著創建無用的 JavaScript 檔案。
結論
給你了。這七個選項可協助您設定 TypeScript 配置以及 TypeScript 如何協助您建立更穩定的程式碼庫。我建議閱讀 Matt Pocock 的“TSConfig Cheat Sheet”,以了解更多流行的選項以放入 tsconfig.json 中,並在實現任何這些選項之前始終參考 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 選項入門的詳細內容。更多資訊請關注PHP中文網其他相關文章!

JavaScript字符串替換方法詳解及常見問題解答 本文將探討兩種在JavaScript中替換字符串字符的方法:在JavaScript代碼內部替換和在網頁HTML內部替換。 在JavaScript代碼內部替換字符串 最直接的方法是使用replace()方法: str = str.replace("find","replace"); 該方法僅替換第一個匹配項。要替換所有匹配項,需使用正則表達式並添加全局標誌g: str = str.replace(/fi

因此,在這裡,您準備好了解所有稱為Ajax的東西。但是,到底是什麼? AJAX一詞是指用於創建動態,交互式Web內容的一系列寬鬆的技術。 Ajax一詞,最初由Jesse J創造

本文討論了在瀏覽器中優化JavaScript性能的策略,重點是減少執行時間並最大程度地減少對頁面負載速度的影響。

本文討論了使用瀏覽器開發人員工具的有效JavaScript調試,專注於設置斷點,使用控制台和分析性能。

將矩陣電影特效帶入你的網頁!這是一個基於著名電影《黑客帝國》的酷炫jQuery插件。該插件模擬了電影中經典的綠色字符特效,只需選擇一張圖片,插件就會將其轉換為充滿數字字符的矩陣風格畫面。快來試試吧,非常有趣! 工作原理 插件將圖片加載到畫布上,讀取像素和顏色值: data = ctx.getImageData(x, y, settings.grainSize, settings.grainSize).data 插件巧妙地讀取圖片的矩形區域,並利用jQuery計算每個區域的平均顏色。然後,使用

本文將引導您使用jQuery庫創建一個簡單的圖片輪播。我們將使用bxSlider庫,它基於jQuery構建,並提供許多配置選項來設置輪播。 如今,圖片輪播已成為網站必備功能——一圖胜千言! 決定使用圖片輪播後,下一個問題是如何創建它。首先,您需要收集高質量、高分辨率的圖片。 接下來,您需要使用HTML和一些JavaScript代碼來創建圖片輪播。網絡上有很多庫可以幫助您以不同的方式創建輪播。我們將使用開源的bxSlider庫。 bxSlider庫支持響應式設計,因此使用此庫構建的輪播可以適應任何

數據集對於構建API模型和各種業務流程至關重要。這就是為什麼導入和導出CSV是經常需要的功能。在本教程中,您將學習如何在Angular中下載和導入CSV文件


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),