Typescript如何动态设置key

新手上路,请多包涵

type DetailType = {
id: number;
level_1?: string;
level_2?: string;
level_3?: string;
level_4?: string;
uniqueKey_1?: number;
uniqueKey_2?: number;
uniqueKey_3?: number;
uniqueKey_4?: number;
};

如上图,这种带前缀level_的key,但又有数字,可能后面还有5,6,7,8...,这里如何动态去写比较好

阅读 2.6k
1 个回答
type DetailType = {
  id: string;
} & {
  [key in `level_${number}`]: string;
} & {
  [key in `uniqueKey_${number}`]: number;
};

const d: DetailType = {
  id: "",
  level_1: "",
};

type DetailType<T extends number = number> = {
  id: string;
} & {
  [key in `level_${T}`]: string;
} & {
  [key in `uniqueKey_${T}`]: number;
};

const d: DetailType<1 | 2 | 3 | 4> = {
  id: "",
  level_1: "",
  level_2: "",
  level_3: "",
  level_4: "",
  uniqueKey_1: 1,
  uniqueKey_2: 1,
  uniqueKey_3: 1,
  uniqueKey_4: 1,
};
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进