gpt4 book ai didi

javascript - 如何在 Javascript 和 Typescript 中动态形成常量字符串

转载 作者:行者123 更新时间:2023-12-03 07:10:29 24 4
gpt4 key购买 nike

我在 Typescript 中有一个常量类,它具有以下内容。

export class Constants {
public static readonly SERVER_1: string = "server url 1";
public static readonly SERVER_2: string = "server url 2";
public static readonly SERVER_3: string = "server url 3";
.....
public static readonly SERVER_21: string = "server url 21";
}

在我的 Processor 类中,我需要形成对象并推送到这样的数组进行处理。

export class Processor {

public areReachable(): void {
const myObject1: ServerReachObject1 = new ServerReachObject(Constants.SERVER_1);
const myObject2: ServerReachObject2 = new ServerReachObject(Constants.SERVER_2);
const myObject3: ServerReachObject3 = new ServerReachObject(Constants.SERVER_3);
.....
const myObject21: ServerReachObject21 = new ServerReachObject(Constants.SERVER_21);
const sModelArray: DNSServerModelInfo[] = [];
ftpModelServerArray.push(myObject1, myObject2, myObject3 ..... myObject21);
}

}

有没有更好的方法来写上面的内容。将来可能会添加服务器。我的高级团队成员建议我以更好的方式写作。请给我建议并帮助我。

我试着这样写。

for (let i = 1; i < 22; i++) {
const dynamicServerName = Constants + ".SERVER_"+i;
const myObject1: ServerReachObject = new ServerReachObject(dynamicServerName);
const sModelArray: DNSServerModelInfo[] = [];
ftpModelServerArray.push(sModelArray);
}

但它不起作用。我的目标是从 Constant 类动态地形成字符串,而不是一个一个地手动声明。请帮助我。

最佳答案

请考虑使用 const 对象而不是具有 const 字段的类。然后,您可以使用 Object.values() 迭代服务器 url 值。

type ServerConstants = {
readonly [name: string]: string;
}

export const Server: ServerConstants = {
SERVER_1: 'Server url 1',
SERVER_2: 'Server url 2'
}

Server.SERVER_1 = 'foo'; // throws error correctly because of readonly in ServerConstants type

Object.values(Server).forEach(value => console.log(value));

关于javascript - 如何在 Javascript 和 Typescript 中动态形成常量字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64132918/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com