TypeScript编译async函数报错:需Promise构造函数,添加lib配置仍未解决
解决单独执行
tsc app.ts时async函数的Promise构造器报错问题 问题原因
直接运行tsc app.ts编译单个文件时,TypeScript编译器不会自动加载当前目录的tsconfig.json配置,而是使用默认编译参数。默认配置的lib不包含ES2015,导致async函数依赖的Promise类型未被识别,因此抛出报错。而执行tsc或tsc -p tsconfig.json时,编译器会读取配置文件中的target和lib设置,所以能正常编译。
解决办法
- 优先使用配置文件编译:始终执行
tsc或tsc -p tsconfig.json,确保编译器加载tsconfig.json中的完整配置,这是最稳妥的方式。 - 命令行手动指定参数:如果必须单独编译单个文件,在命令行中显式传递
target和lib参数:tsc app.ts --target es2016 --lib ES2015,DOM - 封装为npm脚本:把编译命令写到package.json的scripts中,避免重复输入参数:
之后运行{ "scripts": { "build:app": "tsc app.ts --target es2016 --lib ES2015,DOM" } }npm run build:app即可完成编译。
内容的提问来源于stack exchange,提问作者Rudi Heribert Mentär
相关产品推荐
相关产品推荐

