簡體   English   中英

VSCode 工作,但 TS 編譯器拋出錯誤:VSCode 和 TS 編譯器不同步

[英]VSCode works but TS compiler throws error: VSCode and TS compiler are not in sync

我在VSCode中編寫我的項目代碼,我一直在編寫Node.js Express應用程序。 我需要從請求 object 中訪問req.user.name ,VSCode 抱怨user object 中不存在該名稱。 所以我在我的項目根目錄中創建了global.d.ts文件,該文件具有以下內容:

declare namespace Express {
  interface User {
    userName: string;
    name: string;
    email: string;
  }
}

在我的 tsconfig.json 中,我引用了這個文件如下:

{
  "compilerOptions": {
    "typeRoots": ["./node_modules/@types", "./global.d.ts"]
  },
  "include": [/*...*/,"global.d.ts"]
}

在此之后,VSCode 不再抱怨我上面的錯誤,但是當我嘗試使用實際的tsc編譯項目時,它會拋出錯誤。 來自編譯器的錯誤: error TS2339: Property 'name' does not exist on type 'User'

由於某種原因,VSCode 和 TS 編譯器不同步。

我該如何解決這個問題?

VS Code 不會自動將項目的 TS 編譯器用於其 TS 語言服務。 它預裝了一個 TSC 版本,除非您另有說明,否則它將使用該版本,因此可能會變得不同步。

為了確保您的 IDE 與您項目的編譯器版本同步,您可以告訴它在當前工作區中的何處可以找到您的項目的 TSC 二進制文件

如果你還沒有,在你的項目的根目錄創建一個.vscode目錄,並添加一個settings.json到它,在這里你可以使用項目特定的設置來配置 VS Code。

通常,如果 TSC 作為根級節點模塊安裝,您會將其添加到您的.vscode/settings.json

{
  "typescript.tsdk": "./node_modules/typescript/lib"
}

上面有一些基於 GUI 的方法基本上可以實現相同的目標,有關更多信息,請查看這些文檔...

https://code.visualstudio.com/docs/typescript/typescript-compiling#_compiler-versus-language-service

https://code.visualstudio.com/docs/typescript/typescript-compiling#_using-the-workspace-version-of-typescript

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM