[英]error TS2304: Cannot find name 'WebAssembly'
我可能有一個 TypeScript 配置問題,但在我的生活中我無法弄清楚。 我在 nodejs v11 中運行並使用 TypeScript v3.4.5。
我只是試圖用打字稿編譯以下代碼:
const { Module, Instance } = WebAssembly;
這會產生錯誤:
error TS2304: Cannot find name 'WebAssembly'.
奇怪的是,如果我將鼠標懸停在 VSCode 中的所有 3 種類型上,它會正確解析類型並且不會顯示任何錯誤。
如果我使用此解決方法,它會成功編譯並運行:
const { Module, Instance } = (global as any).WebAssembly;
我該怎么做才能讓 TS 正確識別 WebAssembly?
這是我當前的tsconfig.json
文件:
{
"compilerOptions": {
"inlineSourceMap": true,
"noUnusedLocals": true,
"outDir": "build",
"target":"es2018",
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"esModuleInterop": true,
"module": "commonjs",
"moduleResolution": "node",
"noUnusedParameters": false
},
"exclude": ["node_modules"],
"include": ["src/**/*.ts"]
}
編輯:它適用於這個配置:
{
"compilerOptions": {
"removeComments": true,
"sourceMap": true,
"target": "es6",
"module":"commonjs",
"moduleResolution": "node",
"esModuleInterop": true,
"resolveJsonModule": true,
"lib": ["es2018", "dom"],
"outDir": "build",
"sourceRoot": "src",
"emitDecoratorMetadata": true,
"experimentalDecorators": true
},
"include": ["**/*.ts"],
"exclude": ["**/node_modules"]
}
發生這種情況是因為 webassembly 的類型聲明僅在 typescript >3.4 中可用,根據此注釋。
解決方案是將打字稿至少提高到 3.6(?)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.