1 Star 1 Fork 0

wangzichu/ts-challenges

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
55.Union to Intersection.ts 1.08 KB
一键复制 编辑 原始数据 按行查看 历史
王子初 提交于 2023-08-02 16:18 . 更新题库
/*
55 - Union to Intersection
-------
by Zheeeng (@zheeeng) #困难 #utils #infer
### 题目
> 由谷歌自动翻译,欢迎 PR 改进翻译质量。
实现高级util类型`UnionToIntersection<U>`
例如
```ts
type I = Union2Intersection<'foo' | 42 | true> // expected to be 'foo' & 42 & true
```
> 在 Github 上查看:https://tsch.js.org/55/zh-CN
*/
/* _____________ 你的代码 _____________ */
type ToUnionOfFunction<T> = T extends any ? (x: T) => any : never;
type UnionToIntersection<U> = ToUnionOfFunction<U> extends (a: infer U) => any ? U : never
/* _____________ 测试用例 _____________ */
import type { Equal, Expect } from '@type-challenges/utils'
type cases = [
Expect<Equal<UnionToIntersection<'foo' | 42 | true>, 'foo' & 42 & true>>,
Expect<Equal<UnionToIntersection<(() => 'foo') | ((i: 42) => true)>, (() => 'foo') & ((i: 42) => true)>>,
]
/* _____________ 下一步 _____________ */
/*
> 分享你的解答:https://tsch.js.org/55/answer/zh-CN
> 查看解答:https://tsch.js.org/55/solutions
> 更多题目:https://tsch.js.org/zh-CN
*/
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/wang-zichu/ts-challenges.git
git@gitee.com:wang-zichu/ts-challenges.git
wang-zichu
ts-challenges
ts-challenges
master

搜索帮助