如何在打字稿中使用枚举?
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 作为例子:
我有以下枚举:
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 作为例子: