Angular 4使用名称空间导出枚举

Angular 4使用名称空间导出枚举,angular,typescript,ionic2,Angular,Typescript,Ionic2,我正在尝试使用enum来处理国家/地区和货币代码。 enum必须在整个应用程序(Ionic 3和4应用程序)中使用 到目前为止,我发现了这种方式: enum CountryCode { TH, BGD, } namespace CountryCode { export function getCurrencyCode(country: CountryCode) { switch (country) { case CountryCode.TH: r

我正在尝试使用
enum
来处理国家/地区和货币代码。
enum
必须在整个应用程序(Ionic 3和4应用程序)中使用

到目前为止,我发现了这种方式:

enum CountryCode {
  TH,
  BGD,
}

namespace CountryCode {
  export function getCurrencyCode(country: CountryCode) {
    switch (country) {
      case CountryCode.TH:
        return 'THB';
      case CountryCode.BGD:
        return 'BDT';
      default:
        return 'THB';
    }
  }
}
但是在这种情况下,
enum
无法导出到其他模块


如何解决此问题?

您应该在名称空间中声明它,如下所示

export namespace CountryCode {
    export enum CountryCode {
        TH,
        BGD,
    }
    export function getCurrencyCode(country: CountryCode) {
        switch (country) {
            case CountryCode.TH:
                return 'THB';
            case CountryCode.BGD:
                return 'BDT';
            default:
                return 'THB';
        }
    }
}

将导出添加到您的枚举-在执行导入时导出枚举国家代码{}-我应该导入命名空间还是枚举?奇怪-在
app.component.ts
导入正在工作,但在
@Injectable()导出类UserData
中使用完全相同的导入-我得到错误
找不到名称“CountryCode”