首页 > 解决方案 > 同一接口上的模块扩充,多个模块

问题描述

我正在尝试多次从模块扩展接口。让我们总结一些定义:


在中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。密钥notesfrommodule-B完全被忽略。

一些想法:

我一直在到处寻找,但找不到我的问题的答案。已经几个小时了,但还没有进展。

如果有人对我的问题有解决方案,请告诉我。我将永远感激不尽!

标签: typescript

解决方案


推荐阅读