如何避免TypeScript为内部工具文件生成d.ts声明文件?
解决TypeScript编译仍生成空util.d.ts的问题
以下几种方案可以彻底避免生成该文件:
确保exclude路径准确无误
TypeScript的exclude路径是相对于tsconfig.json所在目录的。比如你的util.ts在src/utils/下,exclude应该配置为["src/utils/util.ts"],路径错误会直接导致排除规则不生效。用include明确指定编译范围(替代exclude)
相比exclude,include的优先级更高且更可控。直接在include里列出需要编译的文件/目录,完全不包含util.ts:{ "include": ["src/**/*", "!src/utils/util.ts"], "exclude": [], "compilerOptions": { "declaration": true, "stripInternal": true } }注意:部分旧版本TypeScript可能不支持
include里的!排除语法,这种情况下直接列出所有需要编译的文件即可。使用files字段精准指定编译文件
如果项目文件数量不多,直接在files数组里列出所有需要编译的文件,完全不包含util.ts。TypeScript只会处理这里列出的文件,不会扫描其他文件:{ "files": ["src/index.ts", "src/components/*.ts"], "compilerOptions": { "declaration": true, "stripInternal": true } }检查是否有其他编译文件引用了util.ts
如果其他被编译的文件import了util.ts,即使配置了exclude,TypeScript也会将其作为依赖处理并生成d.ts文件。这种情况下要确保:- 移除其他文件对
util.ts的引用; - 或者将
util.ts放在一个完全不被编译的目录下,同时确保内部引用仅在未被编译的代码中使用。
- 移除其他文件对
内容的提问来源于stack exchange,提问作者Andrea
相关产品推荐
相关产品推荐

