WSL环境下TypeScript编译报错TS5024:target选项需字符串值
TypeScript开发环境脚本执行问题
在WSL环境搭建TypeScript开发环境时碰到个问题:
- 项目目录外执行
ts-node -e 'console.log("hello")'完全正常 - 进到项目目录里跑同样的命令,直接报错:
TSError: ⨯ Unable to compile TypeScript: error TS5024: Compiler option 'target' requires a value of type string.
项目配置文件
package.json
{ "license": "ISC", "scripts": { "lint:fix": "prettier */*.js \"*/**/*{.js,.ts}\" -w", "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check" }, "dependencies": { "@coral-xyz/anchor": "^0.30.1" }, "devDependencies": { "@types/bn.js": "^5.1.0", "@types/chai": "^4.3.0", "@types/mocha": "^9.0.0", "@types/node": "^20.14.8", "chai": "^4.3.4", "mocha": "^9.0.3", "prettier": "^2.6.2", "ts-mocha": "^10.0.0", "ts-node": "^10.9.2", "tslib": "^2.6.3", "typescript": "^5.5.2" } }
tsconfig.json
{ "compilerOptions": { "types": ["mocha", "chai", "node"], "typeRoots": ["./node_modules/@types"], "lib": ["es2015", "dom"], "module": "commonjs", "target": ["es6"], "esModuleInterop": true } }
环境与已执行操作
- Node版本:20.15.0(nvm安装)
- 已经执行过这些安装命令:
# 项目本地安装依赖 npm install -D typescript npm install -D ts-node # 全局安装TypeScript和ts-node npm install -g typescript npm install -g ts-node # 额外安装的依赖 npm install -D tslib @types/node
解决方法
问题出在tsconfig.json的target配置上——TypeScript的target选项要求是单个字符串值,但你写成了数组["es6"],这就触发了类型错误。
修改tsconfig.json里的target字段,把数组改成字符串:
"target": "es6"
保存文件后,再去项目目录里执行ts-node -e 'console.log("hello")'就能正常运行了。
补充一句:lib选项确实是数组类型(比如你配置的["es2015", "dom"]),但target是单个字符串,别搞混了。
内容的提问来源于stack exchange,提问作者El Pandario
相关产品推荐
相关产品推荐

