获得徽章 5
- type UnionToIntersction<U> = (U extends U ? (arg: U) => any : never) extends (arg: infer R) => any ? R : never
type result = UnionToIntersction<{a:1}|{b:2}>
是怎么转成交叉的赞过评论3 - type attrs = 'a' | 'b' | 'c'
type attrObjs = Partial<{
a:string,
b:number,
c:boolean
}>
const attrObjs:attrObjs ={}
const config = (['a','b','c'] as attrs[]).reduce((prev,item)=>{
/*
问题在于item这时候是个联合类型,
这时候的attrObjs类型
*/
prev[item] = attrObjs[item] //这里的类型运算就成了attrObjs<item> 返回了所有的类型,
/*
我想要的是这里的item不应该返回所有,而是每循环一次,就使用其中一个,我想到了类型保护,但是这里的item的类型可能是不固定的,那这时候怎么办
*/
return prev
},{} as attrObjs)展开等人赞过评论5
![[红脸]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_63.c32f5b5.png)