我有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),但没有成功。
有人可以帮忙吗? 非常感谢!
答案 0 :(得分:4)
运行tsc main.ts
时,没有使用tsconfig.json
文件。而是运行tsc -p .
或仅运行tsc
,并在必要时使用{{中的files
,include
和exclude
选项将输入文件限制为编译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
我想知道为什么(: