如何防止不需要的导出组合?

How to Prevent Unwanted Export Combination?

提问人:Aero Wang 提问时间:11/1/2023 更新时间:11/1/2023 访问量:18

问:

我已经设置了我的项目,如以下 Git 存储库所示: https://github.com/aeroxy/dts-problem-demo

我的目标是使用 TypeScript (tsc) 输出一个带有 CommonJS (CJS) 模块的 lib 文件夹和一个特殊的服务器文件夹,其中 Rollup (UMD) 从 .index.js/src/server.ts

当我尝试为我的文件生成 TypeScript 声明文件 (*.d.ts) 时,出现了问题。默认情况下,TypeScript 会生成一个声明文件,但我希望它与输出文件的名称匹配,即 .为了解决这个问题,我使用了 来捆绑 from ./src/server.tsserver.d.tsindex.jsrollup-plugin-dtsindex.d.ts/src/server.ts

但是,我遇到了一个问题。当我编写源代码时,如下所示:

export { Demo };
export type { IFoo };

该插件将其编译为:rollup-plugin-dts

export { type IFoo, ServerDemo };

这是不可取的,因为某些旧版本的 TypeScript 项目不支持导出。我怎样才能关闭这个自动组合并使其编译为预期的:{ type IFoo, ServerDemo }

export { Demo };
export type { IFoo };

请注意,在 中,TypeScript 基于我的 tsconfig 进行编译,它不会显示导出的意外合并。lib/server.d.ts

TypeScript 汇总

评论

1赞 Dimava 11/1/2023
您是否尝试过将包依赖项打字稿版本设置为该版本?
0赞 Aero Wang 11/1/2023
@Dimava什么意思?您可以向问题中提供的 github 存储库提交 PR 吗?
0赞 Dimava 11/2/2023
“在某些旧版本的 TypeScript 项目中不受支持”意味着“在较旧的 TS 版本中”,当您将 ts@4 用作 devDepemdency 时,我希望使类型与 ts@4 兼容rollup-plugin-dts
0赞 Dimava 11/2/2023
也尝试文档说 smth 关于它isolatedModules
0赞 Aero Wang 11/3/2023
@Dimava我明白你的意思了。不幸的是,这没有帮助,因为 TS 版本必须为 5 才能与工作区的其余部分匹配。我们的一些用户仍然使用 TS 4,降低我们的版本来解决此问题是没有意义的。我们想要的是允许编译项目以支持较低版本的 TS,而不是降低项目的 TS 版本。

答: 暂无答案