我有一个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}}中对上述修改进行了引用,但它似乎不起作用 - 具体来说,添加的方法对类型系统不可见。
希望有意义 - 提前感谢!