如何在打字稿和angular

时间:2018-11-05 23:06:53

标签: angular typescript static const

我有一堆与业务相关的常量,我必须将它们存储在Angular中。类似下面的内容

STUDENT_NAMES= ["JOHN","BOB","NICK"]
TEACHER_NAME = ["HARRY","CHRIS"]
 SCHOOL_CODE = [100,102,107];

我有很多它们,它们是静态的..我在大多数服务类中都需要它们。 存放它们的最佳地点是什么?我应该创建一个接口并让我的服务类继承它们吗? 在java中,我们定义了一个公共静态最终常量类,其他类使用它们。像这样,打字稿方式是什么?

5 个答案:

答案 0 :(得分:2)

您将它们放在TypeScript文件中,并在需要时将其导入。

export const STUDENT_NAMES: string[] = ["JOHN","BOB","NICK"];

将其放入学生姓名.ts

import { STUDENT_NAMES } from './path/cosnstants/student-names';

在需要的地方。

我个人将它们命名为StudentNames,而不是STUDENT_NAMES,但这是一个品味问题。

答案 1 :(得分:2)

您可以创建一个包含所有常量的TS文件constants.ts

export const constants = {
   STUDENT_NAMES: ["JOHN","BOB","NICK"],
   TEACHER_NAME: ["HARRY","CHRIS"],
   SCHOOL_CODE: [100,102,107]
};

然后,只要需要常量,就可以像下面的代码一样调用它:

let studentsNames : any = constants.STUDENT_NAMES;

此致

答案 2 :(得分:2)

为常量定义一个抽象类:

export abstract class Constants {
  static readonly STUDENT_NAMES: string[] = ["JOHN", "BOB", "NICK"];
  static readonly TEACHER_NAME: string[] = ["HARRY", "CHRIS"];
  static readonly SCHOOL_CODE: number[] = [100, 102, 107];
}

然后在import { Constants } from '...';中包含所需的此类,并在const names: string[] = Constants.STUDENT_NAMES;中使用其值

关于命名,我同意@AdrianBrand偏爱studentNamesteacherNamesschoolCodes之类的名称。

答案 3 :(得分:1)

environment.ts文件中添加所有常量-这是最佳做法,基于特定于环境的值将保持不变

environment.tsenvironment.prod.ts中都添加-这将是您的全局对象,并且可以在任何级别进行访问

导入将与导入接口或任何类相同 谢谢-编码愉快

答案 4 :(得分:0)

您可以尝试枚举,这将允许您定义一组命名常量。 Refer to this document.

enum Constants {
    STUDENT_NAMES= ["JOHN","BOB","NICK"]
    TEACHER_NAME = ["HARRY","CHRIS"]
    SCHOOL_CODE = [100,102,107];
}