我试图通过TypeScript创建一个与ES5浏览器和NodeJs模块兼容的javascript模块。所以我不想在TypeScrtipt中使用导入和导出,因为它使输出取决于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
**注意:**调制没有任何内容,很多事情都是自定义的,我不能使用打字稿调制的常规导出功能。
答案 0 :(得分:0)
如何直接在生成的d.ts的末尾添加几行
没有TypeScript选项可以神奇地使某些代码仅在生成.d.ts
中不存在时才出现在生成.ts
中。
添加构建管道,例如gulp
/ grunt
,并在生成.d.ts
后使用其完成事件标记更多内容。
我个人建议重新考虑为什么需要这样做。