簡體   English   中英

如何使用打字稿和返回字符串創建枚舉

[英]How to create an enum with typescript and returning string

伙計們,我想問問我是否可以創建一個像這樣的枚舉

export enum CompanyMemberTypeEnum {
    DIRECTORS,
    SHAREHOLDERS,
    DIRECTORS_AND_SHAREHOLDERS
}

CompanyMemberTypeEnum.DIRECTORS將返回0,對嗎? 但是如果我想創建一個可以獲取像這樣的枚舉的字符串的函數

CompanyMemberTypeEnum.getList(CompanyMemberTypeEnum.DIRECTORS)

將返回“導演”

在枚舉文件中,這可能嗎?

TypeScript 2.4之前,TypeScript僅支持基於數字的枚舉,但是如今,它可能是開箱即用的。

正如toskv所指出的, 這里已經提供一個關於它的SO答案。

例如:

enum BeerTypes {
   lager = "Lager",
   ipa = "IPA"

};

首先,您需要創建一個基本的Enum<T>類。

export class Enum<T> {
  public constructor(public readonly value: T) {}
  public toString() {
    return this.value.toString();
  }
}

創建擴展Enum<T>

export class CompanyMemberTypeEnum extends Enum<string> {
  public static readonly DIRECTORS = new Enum('DIRECTORS');
  public static readonly SHAREHOLDERS= new Enum('SHAREHOLDERS');
  public static readonly DIRECTORS_AND_SHAREHOLDERS = new Enum('DIRECTORS_AND_SHAREHOLDERS');
}

現在,您可以像使用枚舉一樣;

console.log(CompanyMemberTypeEnum.DIRECTORS); // Enum { value: 'DIRECTORS' }
console.log(CompanyMemberTypeEnum.DIRECTORS.value); // DIRECTORS
console.log(CompanyMemberTypeEnum.DIRECTORS.toString()); // DIRECTORS

您可以像這樣定義枚舉:

export enum CompanyMemberTypeEnum {
    DIRECTORS = <any>'Directors',
    SHAREHOLDERS = <any>'ShareHolders',
    DIRECTORS_AND_SHAREHOLDERS = <any>'Directors and shareholders'
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM