typescript - 同一接口上的模块扩充,多个模块
问题描述
我正在尝试多次从模块扩展接口。让我们总结一些定义:
- 我想扩展的接口,我们称之为
Metadata
- 创建接口的主包,让我们调用它
main-package
- 扩展
Metadata
接口的模块 A,让我们调用它module-A
- 也扩展
Metadata
接口的模块 B,让我们称之为module-B
在中main-package
,我有以下界面:
export interface Metadata {
name: string;
}
我想Metadata
在模块 A 中扩展它,如下所示:
import 'main-package';
declare module 'main-package' {
interface Metadata {
location: string;
}
}
这完美地工作,现在我可以在安装模块 A 时访问密钥name
& 。location
接下来,我有模块 B,它也想扩展Metadata
,如下所示:
import 'main-package';
declare module 'main-package' {
interface Metadata {
notes: string;
}
}
在包装本身中,这很完美。我可以访问密钥name
& notes
。
现在我将main-package
,module-A
和安装module-B
到一个项目中。当我访问Metadata
界面时,我只能访问name
& location
。密钥notes
frommodule-B
完全被忽略。
一些想法:
- 我试图
Metadata
只从“主包”导入,没有任何区别; - 所有
declare module
文件都是单独的文件; - 这些文件是从文件中构建
.ts
的.d.ts
,上面的代码片段是结果。
我一直在到处寻找,但找不到我的问题的答案。已经几个小时了,但还没有进展。
如果有人对我的问题有解决方案,请告诉我。我将永远感激不尽!
解决方案
推荐阅读
- hyperledger-fabric - 从结构运行 make peer 命令时出错
- c# - 如何在 linq 中使用 where
- ios - iOS 服务工作者处理请求的方式是否与 Chrome/FF 不同?
- python - NameError: name 'test' is not defined ,当尝试在导入的模块/脚本 Python 3 中运行函数时
- sql - 在 DB2 中的选择查询中计算百分比
- python - 在给定变量的情况下访问 django 模板的字典?
- javascript - bcryptjs没有登录,但我可以注册一个用户
- django - 如何使用获取请求在 Django 中调用“设置密码”-csrfmiddlewaretoken 的问题?
- xml - 读取和解析大型 XML 文件的性能问题
- laravel - 在 laravel 邮件视图中获取变量的空值