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

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?


繁星点点滴滴
浏览 450回答 2
2回答

呼唤远方

type&nbsp;NoneStringKeys<T,&nbsp;K>&nbsp;=&nbsp;{ &nbsp;&nbsp;[P&nbsp;in&nbsp;keyof&nbsp;T]:&nbsp;T[P]&nbsp;extends&nbsp;K&nbsp;?&nbsp;never&nbsp;:P; }[keyof&nbsp;T]type&nbsp;KeyOfByType<T,&nbsp;K>&nbsp;=&nbsp;Pick<T,&nbsp;Exclude<keyof&nbsp;T,&nbsp;NoneStringKeys<T,&nbsp;K>>interface&nbsp;T1&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;a:&nbsp;string &nbsp;&nbsp;&nbsp;&nbsp;b:&nbsp;number &nbsp;&nbsp;&nbsp;&nbsp;c:&nbsp;string &nbsp;&nbsp;&nbsp;&nbsp;d:&nbsp;object }type&nbsp;T2&nbsp;=&nbsp;KeyOfByType<T1,&nbsp;string>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript