7

我们正在构建新的 Angular 4 项目,并试图了解哪种方法最适合处理将在所有项目中重用的全局常量。

我想像这样将所有常量放在共享文件夹中

共享

  --constants
    --dateTime.ts
    --money.ts
    --dialogConfig.ts

并为每个文件使用可注入令牌

https://blog.thoughtram.io/angular/2016/05/23/opaque-tokens-in-angular-2.html

例如 dialogConfig.ts 将是

export let DIALOG = new InjectionToken<DialogConfig>('dialog-config');

export const DIALOG_CONFIG: DialogConfig = {
 width : '600px',
 height : 'auto'
};

这样每个常量对象都可以避免名称冲突并且可以注入。

这种方法的利弊是什么?

4

1 回答 1

2

我不确定您是否会因为使用注入令牌而过度复杂化。如果您只想在应用程序中提供全局常量,您可以完全控制这些常量的命名空间以及如何在每个源文件中导入它们。通过从您的特定常量保存 TS 文件中导入它们,您可以绝对确保与其他库没有冲突。

你可以很容易地避免这样的命名冲突,而且我真的没有看到使用 Angular 的依赖管理注入常量而不是直接导入它们的理由。

对我来说,对于您的情况,以下方法似乎更直接:

  1. 在一个或多个 TS 文件中定义和导出常量(如您所做的那样)。
  2. import { MY_CONSTANT } from '../constants/my-constant.ts';使用您需要的任何地方导入常量。
  3. 使用它们并快乐。
于 2018-07-10T06:46:22.490 回答