TypeScript,禁用 “declared but its value is never read” 檢查

如果你聲明了一個變量但從未使用它,TypeScript 將無法編譯,並顯示 '<變量>' 被聲明但其值從未被讀取 的錯誤。 只有在你使用該變量的地方,這個錯誤才會消失。 如果這種情況發生在單行上,你可以在出問題的那一行之前使用注釋 // @ts-ignore,但在這種情況下是無用的,因為該錯誤將會在第二行立即再次發生。 你可以透過打開 tsconfig.json 文件並將 noUnusedLocals 屬性設置為 false,來全局禁用這個錯誤檢查。 完成後,重新啟動 yarn start 以應用新的設置。 還有一個 noUnusedParameters 屬性,可以對未使用的函數參數進行相同的處理。現在保留為 true。 我建議你現在進入 “構建模式” 時進行這些設置,但一旦你的代碼開始趨於完成,請立即重新啟用這些檢查,因為它們可以真正幫助改善你的代碼。

什麼是 SWC?

SWC 是一個越來越被提到的工具。 它可以將任何 JavaScript 或 TypeScript 代碼轉換為同樣適用於較舊的瀏覽器和現代瀏覽器的 JavaScript。 簡而言之,它是新的 Babel。 但更快。 據說速度快了 20 倍以上。 作為一個「普通開發者」,你不會直接使用它。 但它被其他工具使用。 近來我們可以看到對速度的持續關注。主要是因為工具改用了更優化的系統語言,例如 Rust,而不是像 JavaScript 這樣不太優化的語言,後者在其他用例中更為優化。 在 2022 年 12 月發布的 Vite 4 現在支援 SWC 而不是 Babel。這反過來又使其更快。 SWC 也被 Turbopack 使用,後者是由 Vercel 提供的 JavaScript/TypeScript 打包器/構建系統,並作為 Vite 和 Webpack 的替代方案。

使用 TypeScript 在物件解構中加上類型註解

最近,我使用 TypeScript 在 Deno 中建立了一個範例專案,並且需要對一個物件進行解構。我對 TypeScript 基礎有一定的了解,但有時候還是會遇到問題。 其中之一就是物件解構。 我想要這樣寫: const { name, age } = body.value 我嘗試這樣加上 string 和 number 類型註解: const { name: string, age: number } = body.value 但這並不正確。雖然程式碼看起來好像沒有問題,但實際上這會將 name 屬性賦值給 string 變數,並將 age 屬性值賦值給 number 變數。 正確的語法應該是這樣: const { name, age }: { name: string; age: number } = body.value 處理這種情況的最佳方式是為這些資料創建一個類型或介面: interface Dog { name: string age: number } 然後你可以使用更簡潔的方式來寫上述程式碼: const dog: Dog = body.value

如何解決tsconfig.json的\"設定檔中找不到任何輸入\"錯誤

我的幾位學生在Astro專案中遇到了這個問題。 預設情況下,Astro會包含一個tsconfig.json檔案,這個檔案在VS Code中給他們帶來了一個錯誤。 該錯誤來自於tsconfig.json,並顯示以下訊息: 設定檔中找不到任何輸入 我們並沒有使用TypeScript,所以這是一個奇怪的問題。 以下是一些可能的解決方法: 首先,嘗試重新啟動VS Code。 如果這樣不行,請在tsconfig.json檔案相同的資料夾中添加一個空的file.ts檔案。 或者刪除tsconfig.json。 除非您計劃使用TypeScript,否則您可以配置它以指向您專案中的TypeScript檔案,方法如下: 從: { "compilerOptions": { "moduleResolution": "node" } } 修改為: { "compilerOptions": { "moduleResolution": "node" }, "include": [ "./src/\*\*/\*.ts" ] }