typescript - 提取泛型函数中的 keyof'd 类型
问题描述
有没有办法T
从函数类型中提取类型<K extends keyof T>(k: K) => T[K]
type T = { a: 'a'; b: 'b' }
type Fn = <K extends keyof T>(k: K) => T[K]
// This results in the return types being 'any'
type ValueOfT = Fn extends (k: keyof infer U) => any ? U : never
// This throws a compiler error
type ValueOfT2 = Fn extends <K extends keyof infer U>(k: K) => U[K]
? U
: never
// Type isn't narrowed
type NotNarrowed = Fn extends (k: 'a') => infer U ? U : never
// so can't do this
type FnTypes = Fn extends (a: infer U) => any ? U : never
type ValueOfT3 = { [K in FnTypes]: Fn extends (a: K) => infer U ? U : never }
解决方案
推荐阅读
- javascript - Discord.js 一个在用户选择的频道中说些什么的机器人
- sql-server - 在 sql server 2012 中自动生成脚本
- maven - 无法在 maven (IntelliJ) 中下载旧版本源
- hadoop - Flume HDFS Sink 写入错误“无协议:值”
- javascript - 将变量推入数组中的次要子对象
- windows - Ansible Windows Kerberos 身份验证从服务器返回错误的 HTTP 响应代码 500
- swift - 快速编写委托参考的不同选项
- android - 如何显示串口蓝牙的rssi?
- ios - Uvicorn 服务器意外关闭
- wordpress - 如何在 WooCommerce 电子邮件中在一行中显示名字和姓氏