typescript - 如何通过打字稿编译器附加自定义文本以生成 d.ts 文件?
问题描述
我正在尝试通过 TypeScript 创建一个与 ES5 浏览器和 NodeJs 模块兼容的 javascript 模块。所以我不想在 TypeScript 中使用导入和导出,因为它使输出依赖于 SystemJS 或 RequireJS 或 commonJs。我刚刚创建了一个带有命名空间的库并添加了以下代码以使其与 SystemJs 兼容:
// global html object (pure javascript compatiblity)
if (typeof window !="undefined") (<any>window).myNamespace = myNamespace;
// create exports
declare var module:any;
if (typeof module !="undefined") module.exports = {myNamespace};
一切正常,我只需要添加以下代码,这样我就可以在 NodeJS 模块中使用该库并获得正确的键入信息
export {myNamespace}
所以我可以像这样在 NodeJs lib 中使用我的库:
import {myNamespace} from "../lib/myNamespace.js";
但是我找不到如何告诉 TypeScript 编译器在不以自己的方式创建模块的情况下添加该导出。如何在每次编译后自动在生成的 d.ts 末尾添加几行,例如:
Generated typing ..
...
...
// Custom declaration
// Remark Remark
export {myNamespace}
// Remark Remark
**注意:**调制是无的,很多东西是自定义的,我不能使用打字稿调制的常规导出功能。
解决方案
如何在生成的 d.ts 末尾直接添加几行
没有 TypeScript 选项可以神奇地让某些代码仅出现在 generate 中,.d.ts
如果它不存在于 origin 中.ts
。
选项
添加一个构建管道,例如gulp
/grunt
并在生成后使用它们的完成事件来标记更多内容.d.ts
。
我个人建议重新考虑为什么需要这样做。
推荐阅读
- java - 正确的数据格式和对齐
- arrays - C - 将一维数组设为二维
- python - Python多串口减慢Linux上的USB速度
- firebase - 是否可以使用安全规则仅授予用户访问在 Firestore 中以其 uid 命名的文档的权限?
- javascript - JavaScript Chart.JS - 将图表保持在两行中,而不是将所有内容堆叠成一列
- java - 无法在appium上运行基本程序
- java - Selenium Java:侧栏菜单导航->无法选择无序列表菜单项
- r - 从使用 2 个不同几何图形创建的 ggplot 图例中删除某些值
- java - 从命令提示符运行时,LeanFT 无法找到窗口或屏幕 - Terminal Emulator IBM Application
- android - 如何从 NavigationView 向片段添加选项菜单