首页 > 解决方案 > 是否可以根据另一种记录类型定义具有键和值的记录,但增加键名?

问题描述

如果我有以下记录类型,

type State = {
  currentPartnerId: number;
  currentTime: string;
};

我想创建一个新类型,它具有诸如getCurrentPartnerId和属性之类的键,这些键是返回State类型中匹配键的函数。

例如

type NewType = {
  getCurrentParternerId: () => number;
  getCurrentTime: () => string;
}

我尝试了以下,

type Dict<T extends keyof State> = { [key in `get${Capitalize<T>}`]: () => State[T] }

但这需要提供一个我不想做的类型参数......

标签: typescript

解决方案


你非常亲近。

type Dict = { [key in keyof State as `get${Capitalize<key>}`]: () => State[key] }

推荐阅读