首页 > 解决方案 > 如何在不知道键的情况下提取对象每个值的返回类型

问题描述

编辑:我编辑了整个问题以使其更清楚,抱歉造成误解

鉴于这两个对象

const check = {
  string: () => (str: any): string => "check stuff",
  number: () => (num: any): number => 123,
  email: () => (str: any): string => "email check"
}

const myobject =
{
  name: check.string(),
  age: check.number(),
  email: check.email(),
  test: check.number()
}

理想情况下,我想提取这种类型,并且应该以一种我不必在每次创建新检查对象时手动编写类型的方式对其进行概括

type CustomType = {
  name: string;
  age: number;
  email: string;
  test: number;
}

标签: typescript

解决方案


操场

type GetType<T> = {
  [K in keyof T]: T[K] extends (...args: any) => any ? ReturnType<T[K]> : T[K]
}

type CheckedType = GetType<typeof myobject>;

推荐阅读