Typescript如何实现下图这种类型推断

期望下图get函数根据传入的url自动推导出返回值类型

image.png

//源码
type Api = {
    a: () => { x: string, y: string },
    b: () => number,
};

const api: Api = {
    a() {
        return { x: "xxx", y: "yyy" }
    },
    b() {
        return 222
    },
}

function get<K extends keyof Api>(key: K) {
    return api[key]();
}

const foo = get("a")
阅读 1.3k
1 个回答
type Api = {
  a: () => { x: string; y: string }
  b: () => number
}

const api: Api = {
  a() {
    return { x: 'xxx', y: 'yyy' }
  },
  b() {
    return 222
  },
}

function get<K extends keyof Api>(key: K) {
  return api[key]() as ReturnType<Api[K]>
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题