Typescript动态字符串作为常量

Typescript动态字符串作为常量,typescript,Typescript,如何使此代码在Typescript中工作 const prefixOne='ONE'作为const; const prefixTWO='TWO'作为const; const myStringGenerator=(前缀:string)=>`${prefix}\u STORE`; const storeOne=myStringGenerator(prefixOne); const storeTWO=myStringGenerator(prefixTWO); storeOne和storeTwo被键入

如何使此代码在Typescript中工作

const prefixOne='ONE'作为const;
const prefixTWO='TWO'作为const;
const myStringGenerator=(前缀:string)=>`${prefix}\u STORE`;
const storeOne=myStringGenerator(prefixOne);
const storeTWO=myStringGenerator(prefixTWO);
storeOne
storeTwo
被键入为字符串。我想要的是:

const prefixOne = 'ONE' as const;
const prefixTWO = 'TWO' as const;
const storeOne = 'ONE_STORE' as const;
const storeTWO = 'TWO_STORE' as const;

storeOne
storeTwo
被键入为
ONE\u-STORE
TWO\u-STORE
在TypeScript中不可能这样做

基本上,您要求TypeScript在任何步骤上计算任何内容,这是不可能的,您只得到动态类型,而不是动态值

如果确实要这样做,可以在npm启动脚本之前动态生成TypeScript源,如下所示:

node./generateSourceCode.js&&npm start

generateSourceCode.js
中,您只需编写如下内容

const prefixOne=“一”;
const prefixTWO=“两个”;
const myStringGenerator=prefix=>`${prefix}_STORE`;
常数={
prefixOne,
前缀wo,
storeOne:myStringGenerator(prefixOne),
Store2:myStringGenerator(prefixTWO)
};
const sourceCode=Object.entries(常量)
.map(([key,value])=>`const${key}=${JSON.stringify(value)}as const;`)
.加入(“\n”);
writeFile(“您的文件路径”,源代码);

你不能这样做…@Gerrit0有更好的方法来做这样的事情吗?我正在使用redux,但面临一个无法在ts中编写ReduceGenerator的问题。也许可以问一下真正的问题,关于您想要编写的ReduceGenerator。