Javascript 更新和导入动态常量
我有一个定义常量的文件,其中包含当前年份。为了避免每年都更新代码,我让它们变得动态。常数可以通过年份下拉列表进行更新。当用户单击新的一年时,所有常量都应使用该年 它们当前在导出的常量文件中的使用方式:Javascript 更新和导入动态常量,javascript,typescript,Javascript,Typescript,我有一个定义常量的文件,其中包含当前年份。为了避免每年都更新代码,我让它们变得动态。常数可以通过年份下拉列表进行更新。当用户单击新的一年时,所有常量都应使用该年 它们当前在导出的常量文件中的使用方式: export const someConstants={ 2018年的固定值:{ url:CONSTANT_BASE_url+“更多信息-2018”, 其他信息:{ 超级常量值:“1” } } } 然后通过 从“./utils/constants”导入{someConstants}; conso
export const someConstants={
2018年的固定值:{
url:CONSTANT_BASE_url+“更多信息-2018”,
其他信息:{
超级常量值:“1”
}
}
}
然后通过
从“./utils/constants”导入{someConstants};
console.log(someConstants.constants\u ONE\u FOR\u YEAR\u 2018.url);
我在想有几种方法,比如将某些常量更改为接受日期的函数,但这需要每次传入一个日期
export const someConstants=(年)=>{
2018年的固定值:{
url:CONSTANT_BASE_url+`more info-${year}`,
其他信息:{
超级常量值:“1”
}
}
}
或使用类:
export default class constants {
private _year: number = 2019;
private CONSTANT_BASE_URL: string = "https://";
set year(value: number) {
this._year = value;
}
constantsWithYear = () => {
return {
CONSTANT_ONE_FOR_YEAR_2018: {
url: this.CONSTANT_BASE_URL + `more-info-${this._year}`,
otherInfo: {
SUPER_CONSTANT_VALUE: "1"
}
}
}
}
但要设置和访问它,您需要具有相同的类实例
我意识到技术上常量不应该是动态的,但如何在整个项目中使用的常量中添加动态年份?常量是只读的,因此以后不能修改它们。 您可以使用法线变量并使其如下所示:
`var someConstants = {
CONSTANT_ONE_FOR_YEAR_2018: {
url: CONSTANT_BASE_URL + "more-info-"+new Date().getFullYear(),
otherInfo: {
SUPER_CONSTANT_VALUE: "1"
}
}
}
`
关键字const使其无法重新定义,但实际上您可以编辑对象。更改为var不会改变任何事情<代码>常量foo={a:'b'};foo.a='c';console.log(foo.a);//c所以你可以使用你的第二个选择,但只需做一些更改,导入const someConstants=(new Date().getFullYear())=>{CONSTANT\u ONE\u FOR_YEAR\u 2018:{url:CONSTANT\u BASE\u url+
更多信息-${YEAR}
,其他信息:{SUPER\u CONSTANT\u VALUE:“1”}