如何获取用于生成tsconfig.json的TSConfig对象TypeScript定义?
嘿,这个问题我太熟了!要拿到tsconfig运行时对象对应的TypeScript接口定义,有几个实用又靠谱的途径,给你一一说清楚:
直接从TypeScript核心包导入官方定义
TypeScript本身就内置了完整的tsconfig配置项类型,官方维护的TSConfigJson接口完全匹配tsconfig.json的所有字段,包括不同版本新增的特性。你只需要确保项目里安装了typescript包,然后直接导入就行:import { TSConfigJson, CompilerOptions } from 'typescript'; // 用TSConfigJson约束你的运行时对象 const generatedTsConfig: TSConfigJson = { compileOnSave: false, files: ['src/main.ts'], compilerOptions: { target: 'ES2020', module: 'CommonJS', strict: true } };要是你只需要编译器配置部分的类型,单独导入
CompilerOptions就可以,非常灵活。查看TypeScript源码中的定义细节
如果你想深入了解每个字段的具体约束或者历史版本的变化,可以去TypeScript的源码里找对应的定义文件。核心定义在src/compiler/tsconfigSchema.ts和src/compiler/options.ts文件中,里面不仅有接口定义,还有每个配置项的注释说明,适合需要定制化类型的场景。通过JSON Schema生成类型(可选)
TypeScript官方提供了tsconfig的JSON Schema,你可以用工具(比如json-schema-to-typescript)把这个Schema转换成TypeScript接口。不过这个方法不如直接导入官方包的类型方便,毕竟官方包的类型会跟着TypeScript版本自动更新,不用自己手动维护。
这些方法里,直接从typescript包导入TSConfigJson是最推荐的,省心又准确,完全不用自己手动写那些繁琐的接口字段~
内容的提问来源于stack exchange,提问作者user20416

