Angular:我可以根据条件编辑枚举吗?

问题描述 投票:0回答:1

因此,我创建了一个枚举来保存在我的应用程序中经常使用的颜色。

export enum SeverityColor {
    None = '#2196F3',
    Low = '#39B54a',
    Medium = '#FCEE21',
    High = '#F7931E',
    Critical = '#F44336',
}

现在我们想要添加从深色模式到浅色模式的主题切换,并且这些颜色将需要根据应用程序所处的模式进行更改。这可能不是最佳实践,但有没有办法可以更新它基于条件的枚举?这比找到我引用这个的每个地方并改变它的工作方式要容易得多。

或者有人对更好的方法有建议吗? 谢谢。

angular enums
1个回答
0
投票

这更像是一个打字稿问题。为了简化,打字稿中的枚举基本上编译成一个普通的 JavaScript 对象。这意味着,从 JavaScript 的角度来看,可以编写如下内容:

SeverityColor.Low = '#BADA55';

但是,如果你这样做,TypeScript 会抱怨,说 Low 是只读的。您可以通过对任何类型断言来解决这个问题,如下所示:

(SeverityColor as any).Low = '#BADA55';

现在我认为这不是一个好主意,但你就这样吧。

© www.soinside.com 2019 - 2024. All rights reserved.