如何在打字稿中使用枚举?

How to use enum in typescript?

我有以下枚举:

export enum SubstitutionType {
  REPLACEMENT_TEACHER_SUBJECT = 0,
  REPLACEMENT_TEACHER = 1,
  REPLACEMENT_FREE = 2
}

我尝试像这样在 class 中使用它:

class A {

public substitutionsType: SubstitutionType;

}

然后在模板中我无法像这样访问 substitutionsType

substitutionsType.REPLACEMENT_FREE

为什么,如何使用这个?

目前,您将 substitutionsType 声明为 SubstitutionType 类型,即它可以包含枚举值之一。但是,您想要实现的是将(整个)枚举分配给实例变量:

class A {
    public substitutionsType = SubstitutionType;
}

// Now typechecks
(new A).substitutionsType.REPLACEMENT_FREE;

实例变量的推断类型为typeof SubstitutionType,喜欢的也可以注解

希望对您有所帮助:

export enum SubstitutionType {
  REPLACEMENT_TEACHER_SUBJECT,
  REPLACEMENT_TEACHER,
  REPLACEMENT_FREE
}

要在模板中使用它,您应该像这样导出 class:

export class Substitutions{
    public substitutionsType: SubstitutionType; 

    @Input() public set substitution(val: number) {
        console.log(value);
    };
}

然后要在您的模板中使用它,您将编写如下内容:

<span class="Substitutions" subsitutionType="subsitution.REPLACEMENT_FREE"></span>

我用这个 post 作为例子: