Ben*_*ate 3 typescript type-definition
我有一个 javascript 库,这里有一个类型定义文件: https: //github.com/tyranid-org/tyranid/blob/master/tyranid.d.ts,它通过typings我的package.json文件中的属性公开。
定义文件的基本版本:
export default Tyr;
declare namespace Tyr {
interface Document {
$save(): Promise<Document>;
}
}
Run Code Online (Sandbox Code Playgroud)
我想Document在一个完全独立的打字稿库中扩展该接口:https://github.com/CrossLead/tyranid-gracltyranid,通过向$newMethod()文档接口添加一个方法,该库与其类型一起导入。这可以做到吗?
我已在第二个存储库的单独声明文件中尝试了以下操作,但它不起作用:
import Tyr from 'tyranid';
declare namespace Tyr {
interface Document {
$newMethod(): number;
}
}
Run Code Online (Sandbox Code Playgroud)
如有必要,我可以修改这两个声明——很可能我没有正确编写 tyranid 的原始类型定义文件。谢谢!
以下最终工作...
在node_modules/tyranid/tyranid.d.ts:
export = Tyr // must do "import * as Tyr from 'tyranid'" instead of default
declare namespace Tyr {
export interface Document {
// original definition...
}
}
Run Code Online (Sandbox Code Playgroud)
在mylib/tyranid-extensions.d.ts...
declare module "tyranid" {
interface Document {
addedMethod(): boolean;
}
}
Run Code Online (Sandbox Code Playgroud)
感谢@pelle-jacobs 的帮助!
| 归档时间: |
|
| 查看次数: |
6640 次 |
| 最近记录: |