因此,我创建了一个枚举来保存在我的应用程序中经常使用的颜色。
export enum SeverityColor {
None = '#2196F3',
Low = '#39B54a',
Medium = '#FCEE21',
High = '#F7931E',
Critical = '#F44336',
}
现在我们想要添加从深色模式到浅色模式的主题切换,并且这些颜色将需要根据应用程序所处的模式进行更改。这可能不是最佳实践,但有没有办法可以更新它基于条件的枚举?这比找到我引用这个的每个地方并改变它的工作方式要容易得多。
或者有人对更好的方法有建议吗? 谢谢。
这更像是一个打字稿问题。为了简化,打字稿中的枚举基本上编译成一个普通的 JavaScript 对象。这意味着,从 JavaScript 的角度来看,可以编写如下内容:
SeverityColor.Low = '#BADA55';
但是,如果你这样做,TypeScript 会抱怨,说 Low 是只读的。您可以通过对任何类型断言来解决这个问题,如下所示:
(SeverityColor as any).Low = '#BADA55';
现在我认为这不是一个好主意,但你就这样吧。