簡體   English   中英

錯誤 TS2304:找不到名稱“WebAssembly”

[英]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.

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