什么意思:枚举声明只能与命名空间或其他枚举声明合并

What does it mean: Enum declarations can only merge with namespace or other enum declarations

我的 Types.ts 文件中出现了这个错误

./sharedDirectory/Types.ts:880:13 Type error: Enum declarations can only merge with namespace or other enum declarations.

878 | }*/ 879 |

880 | export enum InvoiceProvider { | ^ 881 | No = "-", 882 | Billingo = "Billingo", 883 | Szamlazzhu = "szamlazz.hu", error Command failed with exit code 1.

我有以下相关的十进制:

export enum InvoiceProvider { // <---- ERROR here
  No = "-",
  Billingo = "Billingo",
  Szamlazzhu = "szamlazz.hu",
}

export type SelectItemKeys =
  | InvoiceProvider
  | PaymentProviderName
  | SzamlazzhuVatKeys
  | BillingoVatKeys
  | PricingAndInvoicingType
  | InvoiceFulfillmentDate
  | InvoiceItemQuantityType;

export let selectItemList: {
  [selectItemDataOptionId: string]: SelectItemData<SelectItemKeys>;
} = {
  selectedInvoiceProvider: new SelectItemData<InvoiceProvider>(
    {
      InvoiceProvider.No: {"hu": "-", "en": "-"},
      InvoiceProvider.Billingo: {"hu": "Billingo", "en": "Billingo"},
      InvoiceProvider.Szamlazzhu: {"hu": "Szamlazz.hu", "en": "Szamlazz.hu"},
    },
    InvoiceProvider.No
  ),
};

我看不出有什么问题。你有什么想法吗?

你有语法错误。

您需要将枚举 属性 括在方括号中。

[InvoiceProvider.No]

示例:

export enum InvoiceProvider { 
  No = "-",
  Billingo = "Billingo",
  Szamlazzhu = "szamlazz.hu",
}
class SelectItemData{}

export type SelectItemKeys =
  | InvoiceProvider
  | PaymentProviderName
  | SzamlazzhuVatKeys
  | BillingoVatKeys
  | PricingAndInvoicingType
  | InvoiceFulfillmentDate
  | InvoiceItemQuantityType;

export let selectItemList: {
  [selectItemDataOptionId: string]: SelectItemData<SelectItemKeys>;
} = {
  selectedInvoiceProvider: new SelectItemData<InvoiceProvider>(
    {
      [InvoiceProvider.No]: {"hu": "-", "en": "-"}, // <--- [InvoiceProvider.No] in square brackets
      [InvoiceProvider.Billingo]: {"hu": "Billingo", "en": "Billingo"},
      [InvoiceProvider.Szamlazzhu]: {"hu": "Szamlazz.hu", "en": "Szamlazz.hu"},
    },
    InvoiceProvider.No
  )
}

如果您使用计算的 属性 名称,应将它们括在方括号中