是否可以在Typescript中声明动态字符串类型

时间:2019-07-31 20:01:18

标签: typescript

假设:

export enum EEnv { devint, qa1 };
export type TEnv = keyof typeof EEnv;
export const env:Record<TEnv, {something:number}> = {
  devint: {
    something: 1,
  },
  qa1: {
    something: 1,
  },
}

然后我要基于env对象创建动态对象,如下所示:

export const SAVE_TOKEN: Record<TEnv, string> = {
  devint: "SAVE_TOKEN/devint", // based on "env" key
  qa1: "SAVE_TOKEN/qa1", // based on "env" key
}

有什么方法可以将字符串类型创建为 "SAVE_TOKEN/"+TEnv 而不是字符串。

1 个答案:

答案 0 :(得分:3)

有一些受欢迎的公开提案/要求,包括Regex-validated string type: TypeScript#6579TypeScript#12754comment about this exact use case,但从3.5.1开始,答案为否。