【问题标题】:How to define constants in Typescript: Define a static class Or define an Object如何在 Typescript 中定义常量:定义静态类或定义对象
【发布时间】:2019-11-28 04:07:54
【问题描述】:

当我需要使用 typescript 定义一些常量时,我​​感到有些困惑。

我可以像下面这样定义一个常量

export const CONSTANTS = {
  db: {
    myDbSessionName: 'mydbconn'
  }
};

或者我可以定义一个静态类

export class Constants {
  public static readonly db = {
    myDbSessionName: 'mydbconn'
  }
}

任何人都可以帮助解释使用这两种方式时有什么区别,例如性能。 还有什么更好的方法。

提前致谢。

【问题讨论】:

    标签: typescript class constants


    【解决方案1】:

    在以下示例中,无需创建类 - 您可以查看 tsc 将如何编译您的 example

    我认为如果

    • 您将拥有(非静态)实例(甚至是用于惰性初始化的单例等...)
    • 您必须处理运行时类型检查(例如使用“inscaneof”)
    • 您希望将逻辑封装在私有方法/字段中

    我认为性能方面不会有任何明显差异。

    【讨论】:

    • 嗨 Lajos Gallay,感谢您的回复。我发现使用 Class 的一个好处是它显示了这个类在 vs 代码中有多少引用。
    • 我认为您可以看到对任何变量的引用,而不仅仅是类。也许你必须在你的配置中打开“typescript.referencesCodeLens.enabled”(我不知道它是默认打开还是关闭);)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 2016-07-14
    • 2013-11-27
    • 2021-07-06
    • 1970-01-01
    • 2015-02-05
    相关资源
    最近更新 更多