首页 > 解决方案 > 在 Angular 中评估枚举

问题描述

我在组件中实现了一个枚举,dog如下所示:

export enum Sex {
  FEMALE,
  MALE
}

在另一个组件中,我有:

import {Dog, Sex} from "../../dto/dog";

[...]

@Input() dog: Dog;

[...]

isFemale(): boolean {
  let dogSex: Sex;
  dogSex = this.dog.sex;
  console.log(typeof dogSex);
  console.log(dogSex);
  if (dogSex === Sex.FEMALE) {
    console.log("F");
    return true;
  } else {
    console.log("M");
    return false;
  }
}

控制台日志读取

字符串
FEMALE
M

现在这很奇怪。但更奇怪的是,如果我评估 Angular 将无法编译

if (dogSex === "FEMALE")

并声明,我无法将类型Sex与字符串进行比较。

这是怎么回事,我该如何解决?

标签: typescriptif-statementenumscompare

解决方案


推荐阅读