![](/img/trans.png)
[英]vscode intellisense node.js works for .js files - not .ts files
[英]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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.