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

时间:2018-04-06 12:00:51

标签: typescript typescript2.0

我有以下枚举:

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

我尝试在课堂上使用这个:

class A {

public substitutionsType: SubstitutionType;

}

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

substitutionsType.REPLACEMENT_FREE

为什么,如何使用它?

2 个答案:

答案 0 :(得分:2)

希望这能帮到你:

export enum SubstitutionType {
  REPLACEMENT_TEACHER_SUBJECT,
  REPLACEMENT_TEACHER,
  REPLACEMENT_FREE
}

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

export class Substitutions{
    public substitutionsType: SubstitutionType; 

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

然后在模板中使用它,你会写这样的东西:

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

我使用这个帖子就像一个例子:Pass enums in angular2 view templates

答案 1 :(得分:1)

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

class A {
    public substitutionsType = SubstitutionType;
}

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

实例变量的推断类型为typeof SubstitutionType,如果您愿意,也可以对其进行注释。