如何在用TypeScript编写的npm包中正确包含带有模块扩充的声明文件?

时间:2016-12-21 16:36:02

标签: typescript npm

我有一个npm包 - tyranid-gracl (link) - 用打字稿编写并扩展另一个包:tyranid (link),用javascript编写但including type definitions

tyranid-gracl内我使用module augmentation to extend several interfaces in tyranid。另外,我在.d.ts tyranid-gracl字段typings中公开了为package.json生成的tyranid-gracl个文件,以便让第三方打字稿库具有{tyranid的格式1}}。

问题:如何正确地将tyranid-gracl tyranid-gracl的模块扩充暴露给通过npm安装tyranid的第3个库?

问题的基本升华

第一个库/** * Type definitions for tyranid.js */ export = TyrStatic; declare namespace TyrStatic { // declare properties of Tyr object export namespace Tyr { interface Document { $id: string; } } } 的类型定义文件:

tyranid-gracl

第二个库import { documentMethods as dm } from './tyranid/documentMethods'; declare module 'tyranid' { namespace Tyr { /** * Add additional methods to Document interface */ interface Document { $allow: typeof dm.$allow; $deny: typeof dm.$deny; } } }

的模块扩展
tyranid-gracl

我希望在开发人员通过npm安装index.d.ts时进行上述修改。目前,我在tyranid-gracl {{1}}中对上述修改进行了引用,但它似乎不起作用 - 具体来说,添加的方法对类型系统不可见。

希望有意义 - 提前感谢!

0 个答案:

没有答案