在 Typescript 中导出除少数项目之外的所有内容

Sep*_*eed 5 export typescript

我想从模块中导出所有内容,除了一些我想覆盖的函数之外。像这样的东西:

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

export * from Base;

export function extendMe() {
  extendMeOld();
  someOtherCode();
}
Run Code Online (Sandbox Code Playgroud)

如何使用 Typescript 来实现这一点?

Sep*_*eed 1

这很丑陋,但这是有效的:

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

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

// @ts-ignore
export * from Base;
Run Code Online (Sandbox Code Playgroud)

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

不管怎样,一个会超载另一个,并且tsc会对此生气,但你可以让它忽略这个问题。