为了账号安全,请及时绑定邮箱和手机立即绑定

如何定义一个范型类型返回原类型中实现特定类型的所有属性名?

如何定义一个范型类型返回原类型中实现特定类型的所有属性名?

繁星点点滴滴 2019-03-10 14:26:10
type KeyOfByType<T extends object, P> = ???type T1 = {     a: string     b: number     c: string     d: object }type T2 = KeyOfByType<T1, string>// type T2 = "a" | "c"如何定义以上的KeyOfByType?
查看完整描述

2 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

type NoneStringKeys<T, K> = {
  [P in keyof T]: T[P] extends K ? never :P;
}[keyof T]type KeyOfByType<T, K> = Pick<T, Exclude<keyof T, NoneStringKeys<T, K>>interface T1 {
    a: string
    b: number
    c: string
    d: object
}type T2 = KeyOfByType<T1, string>


查看完整回答
反对 回复 2019-03-10
  • 2 回答
  • 0 关注
  • 449 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信