Enums 如何在flowtype中使用枚举进行穷举类型检查?

Enums 如何在flowtype中使用枚举进行穷举类型检查?,enums,flowtype,string-literals,Enums,Flowtype,String Literals,我试图在flowtype中为我的枚举添加穷举类型检查。我希望这类代码能够正常工作(在TypeScript中也是如此): 但这似乎并不正确,因为我们应该能够像在其他语言中一样使用对单元的引用 那么有什么方法可以正确地做到这一点吗? 我还试图确保在单位的值上有正确的类型,但这无助于: export const Unit: { +Meter: "Meter", +Feet: "Feet" } = { Meter: "Meter"

我试图在flowtype中为我的枚举添加穷举类型检查。我希望这类代码能够正常工作(在TypeScript中也是如此):

但这似乎并不正确,因为我们应该能够像在其他语言中一样使用对
单元的引用

那么有什么方法可以正确地做到这一点吗?


我还试图确保在
单位
的值上有正确的类型,但这无助于:

export const Unit: {
  +Meter: "Meter",
  +Feet: "Feet"
} = {
  Meter: "Meter",
  Feet: "Feet"
};
Object.freeze(Unit);
export type UnitEnum = $Keys<typeof Unit>;
导出常量单位:{
+米:“米”,
+脚:“脚”
} = {
米:“米”,
脚:“脚”
};
对象。冻结(单位);
导出类型UnitEnum=$Keys;

我认为这是流程中的一个已知问题,在回购中,围绕字符串文本和开关存在很多问题。这似乎接近你的问题。这就像我第三次回到我自己的问题,发现这种基本的东西不起作用……我认为这是流程中的一个已知问题,在关于字符串文本和开关的回购中有很多问题。似乎很接近你的问题。这就像我第三次回到我自己的问题,发现这种基本的东西不起作用。。。
export function longName(unit: UnitEnum): string {
  switch (unit) {
    case "Meter":
      return "meter";
    case "Feet":
      return "feet";
    default:
      (unit: empty);
      throw "Invalid unit";
  }
}
export const Unit: {
  +Meter: "Meter",
  +Feet: "Feet"
} = {
  Meter: "Meter",
  Feet: "Feet"
};
Object.freeze(Unit);
export type UnitEnum = $Keys<typeof Unit>;