0

我想从一个模块中导出所有内容,除了一些我想覆盖的功能。像这样的东西:

import * as Base from "base-module";
const extendMeOld = Base.extendMe;
delete Base.extendMe;

export * from Base;

export function extendMe() {
  extendMeOld();
  someOtherCode();
}

如何使用 Typescript 实现这一点?

4

2 回答 2

0

为了保持它可摇树的 id 建议如下

export { doNotExtendMe, meNeigher } from "base-module";
import { extendMe as extendMeOld } from "base-module";

export function extendMe() {
  extendMeOld();
  someOtherCode();
}
于 2020-05-19T13:02:14.630 回答
0

这很丑陋,但这有效:

import { extendMe as extendMeOld } from "base-module";

export function extendMe() {
  extendMeOld();
  someOtherCode();
}

// @ts-ignore
export * from Base;

我想首先导出的内容优先。我很惊讶并期望它是相反的(导出覆盖),但也许模块解析是运行时的事情?

无论如何,一个超载另一个并且tsc会为此生气,但你可以让它忽略这个问题。

于 2020-05-19T17:31:04.207 回答