TypeScript执行npx tsc未生成.d.ts声明文件问题求助
问题原因及解决方法
- include范围配置错误
你当前的tsconfig.json中include字段仅匹配.tsx后缀的文件,漏掉了.ts后缀的文件,例如src/themes目录下的.ts类型文件都不会被纳入编译,自然不会生成对应的声明文件。
修改include配置为:
"include": ["src/**/*.ts", "src/**/*.tsx"]
rootDirs配置异常
你配置的rootDirs包含stories、config两个目录,但include规则没有覆盖这两个目录下的文件,会导致编译时路径计算异常,最终不输出产物。
如果你不需要编译这两个目录的代码,将rootDirs修改为["src"]即可;如果需要编译这两个目录的内容,要在include中添加对应的路径匹配规则。缺少模块导出
TS仅会对作为模块的文件生成声明文件,需要确保你的每个.ts/.tsx文件都包含至少一个export语句,没有任何导出的全局脚本文件不会生成对应的.d.ts文件。编译错误中断输出
如果代码中存在语法或者类型错误,TS默认会中断编译不输出任何产物。你可以先执行npx tsc --noEmit检查所有报错,修复后再执行编译命令。如果需要忽略错误强制生成声明文件,可以在compilerOptions中添加配置:
"noEmitOnError": false
完成以上调整后,重新执行npx tsc即可在配置的outDir也就是./dist目录下看到生成的.d.ts声明文件,目录结构会和src目录结构保持一致。
内容的提问来源于stack exchange,提问作者Jamie Hutber
相关产品推荐
相关产品推荐

