【发布时间】:2021-09-20 13:03:12
【问题描述】:
我想在我的 React 功能组件(即无类)TypeScript 项目中向 Enum 类型添加函数。
正如asked and answered here 一样,这可以通过以下两种方式之一完成:
class ModeUtil {
public static toString(mode: Mode) {
return Mode[mode];
}
或
enum Mode {
X,
Y
}
namespace Mode {
export function toString(mode: Mode): string {
return Mode[mode];
}
export function parse(mode: string): Mode {
return Mode[mode];
}
}
由于到目前为止我已经能够在我的项目中避免类,我更喜欢保持这种方式,因此我赞成命名空间方法。
但是,命名空间方法违反了no-namespace ESLint 规则。
因此,使用类毕竟是一种有效的方法吗?我的意思是,在 React 中,引入了功能组件以支持基于类的组件,以避免突变问题。在这种情况下,类本身将只包含静态方法...
【问题讨论】:
-
枚举是麻烦的仅限 TS 的构造,因此如果您需要使用不受欢迎的东西,例如名称空间或仅限静态的类,那就是代价。更合适的解决方案是放弃枚举。
标签: reactjs typescript enums