首页 > 解决方案 > 如何通过打字稿编译器附加自定义文本以生成 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

**注意:**调制是无的,很多东西是自定义的,我不能使用打字稿调制的常规导出功能。

标签: typescripttypescript-typings

解决方案


如何在生成的 d.ts 末尾直接添加几行

没有 TypeScript 选项可以神奇地让某些代码仅出现在 generate 中,.d.ts如果它不存在于 origin 中.ts

选项

添加一个构建管道,例如gulp/grunt并在生成后使用它们的完成事件来标记更多内容.d.ts

我个人建议重新考虑为什么需要这样做。


推荐阅读