从命名空间重新导出 Typescript 枚举?

re-export Typescript enum from namespace?

我在模块 'some-lib' 中有一个枚举定义。我想从我的模块中的命名空间重新导出它,如下所示:

import { PaymentType } from 'some-lib';

namespace Payout {
    export enum PaymentType = PaymentType;
}

我运气不好。我想这样做是为了给枚举起别名并将其放入不同的命名空间,以避免与其他同名类型发生冲突。我不想在我的代码中定义枚举的重复副本,并且必须维护所有枚举值。

Typescript 目前有什么方法支持这个吗?

是的,有办法做到这一点,例如:

import { PaymentType as _PaymentType } from 'some-lib';


namespace Payout {
  export import PaymentType = _PaymentType;
}

或者:

import * as SomeLibTypes from 'some-lib';


namespace Payout {
  export import PaymentType = SomeLibTypes.PaymentType;
}

参考:https://github.com/Microsoft/TypeScript/issues/20273#issuecomment-347079963