如何为枚举 Angular 4 打字稿显示不同的字符串

How to show different string for enums Angular 4 typescript

我有一个基于字符串的枚举。在不更改枚举 class 的情况下,我需要在我的模式上显示不同的字符串。我的对象包含枚举。我的代码如下:

枚举:

  export enum FooEnum {
        ONE,
        TWO,
        THREE
    }

HTML:

<select class="form-control"
                    type="text"
                    id="foo"
                    [(ngModel)]="obj.foo"
                    required
                    name="foo"
                    #foo="ngModel">
              <option *ngFor="let foo of fooToList()" [ngValue]="foo">{{foo}}</option>
            </select>

打字稿:

  fooToList(): Array<string> {
    const keys = Object.keys(FooEnum);
    return keys.slice(keys.length / 2);
  }

我想将 ONE 视为 Un,将 TWO 视为 Deux 等。你能帮助我吗?

注意:我包括 angular 2 也是因为 2 和 4 非常相似。

您也可以使用值初始化枚举,例如

enum FooEnum { 
  ONE = 'Un',
  TWO = 'Deux',
  ... etc
}

参见documentation

注意:这是在 TypeScript 2.4 中引入的