如何解决tsconfig.json配置不生效的问题
作者:Lysun001
这篇文章主要介绍了如何解决tsconfig.json配置不生效的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
tsconfig.json配置不生效的问题
说明一下我遇到的问题,这是我的配置文件代码的
{ "compilerOptions": { "module": "none", "target": "ES5", "outFile": "./dist/bundle.js" } }
和我想象不同的是,我编译成 js 没有在 dist 目录下生成 bundle.js
下面我来说一下情况
我的错误是因为 我在使用 tsc 命令的时候,我在后面接上了具体的文件,所以 ts 编译直接跳过了配置文件 tsconfig,json
以下是其他可能发生的情况
outFile 的限制:
- outFile 选项仅适用于 module 设置为 none、amd 或 system 的情况。
- 如果你的 TypeScript 文件中使用了 ES 模块(如 import/export),即使你在 tsconfig.json 中 设置了 "module": "none",编译器仍然可能会报错或忽略 outFile。
输出目录未创建:
- TypeScript 编译器不会自动创建 dist 目录。如果目标目录不存在,编译器会直接将文件输出 到当前目录,而不是指定的路径。
编译命令的问题:
- 如果你在运行 tsc 命令时指定了特定的文件(如 tsc hello.ts),TypeScript 会忽略 tsconfig.json 文件中的配置,包括 outFile 和其他选项
tsconfig.json的target配置为es6之后,for...in失效
问题描述
在学习Typescript项目时,将tsconfig.json中的target配置为es6之后。导致项目中一段交叉类型报错。
实现案例
将一个类中的原型方法复制到另一个对象中。利用for...in
进行遍历复制
export function extend<T, U>(to: T, from: U): T & U { for (const key in from) { (to as T & U)[key] = from[key] as any } return to as T & U }
问题定位
由于 ES6 class
声明的内部方法是 Function.prototype.xxx
的语法糖。
同时ES6
中,原型上的方法不可以枚举,导致无法通过for...in
获取对应的方法
解决问题
因此tsconfig.json
中配置更改为 target: es5
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。