打字稿编译器:找不到名称“地图”

时间:2018-09-23 16:32:22

标签: angular typescript electron

我有Electron + Angular应用程序。我想将Typescript用于Electron,所以我有main.ts文件,并想使用“ tsc main.ts”将其编译为main.js。但是,出现以下错误:

node_modules/@types/selenium-webdriver/remote.d.ts:139:29-错误TS2304:找不到名称“地图”。

仍然生成main.js,并且当我运行电子时无需tsc命令即可使用。但是,我希望它由一个脚本运行而没有任何错误。

我的tsconfig.json包含:

{
 "compileOnSave": false,
 "compilerOptions": {
  "baseUrl": "./",
  "outDir": "./dist/out-tsc",
  "sourceMap": true,
  "declaration": false,
  "module": "es2015",
  "moduleResolution": "node",
  "emitDecoratorMetadata": true,
  "experimentalDecorators": true,
  "target": "es5",
  "typeRoots": [
    "node_modules/@types"
   ],
  "lib": [
   "es2017",
   "dom"
  ]
 }
}

我已经尝试了target和lib配置的各种组合(例如es6),但没有成功。

有人可以帮忙吗? 非常感谢!

3 个答案:

答案 0 :(得分:4)

运行tsc main.ts时,没有使用tsconfig.json文件。而是运行tsc -p .或仅运行tsc,并在必要时使用{{中的filesincludeexclude选项将输入文件限制为编译1}}。

答案 1 :(得分:1)

从Angular 6升级到Angular 8后,我遇到了这个问题。原来,升级脚本更新了Typescript版本,但是我的package.json中的@types/node包已经过时了(显然,与新的Typescript版本)。 更新它就可以了!

答案 2 :(得分:0)

由于某些原因,当我如上所述添加include和exclude部分时,仍然出现错误:

"../node_modules/@types/selenium-webdriver/http.d.ts:24:14 - error TS2583: Cannot find name 'Map'. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later" 

我运行时错误停止了:npm i @types/node

我想知道为什么(: