我有一堆与业务相关的常量,我必须将它们存储在Angular中。类似下面的内容
STUDENT_NAMES= ["JOHN","BOB","NICK"]
TEACHER_NAME = ["HARRY","CHRIS"]
SCHOOL_CODE = [100,102,107];
我有很多它们,它们是静态的..我在大多数服务类中都需要它们。 存放它们的最佳地点是什么?我应该创建一个接口并让我的服务类继承它们吗? 在java中,我们定义了一个公共静态最终常量类,其他类使用它们。像这样,打字稿方式是什么?
答案 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偏爱studentNames
,teacherNames
和schoolCodes
之类的名称。
答案 3 :(得分:1)
在environment.ts
文件中添加所有常量-这是最佳做法,基于特定于环境的值将保持不变
在environment.ts
和environment.prod.ts
中都添加-这将是您的全局对象,并且可以在任何级别进行访问
导入将与导入接口或任何类相同 谢谢-编码愉快
答案 4 :(得分:0)
您可以尝试枚举,这将允许您定义一组命名常量。 Refer to this document.
enum Constants {
STUDENT_NAMES= ["JOHN","BOB","NICK"]
TEACHER_NAME = ["HARRY","CHRIS"]
SCHOOL_CODE = [100,102,107];
}