typescript - Typescript 成功创建递归条件类型
问题描述
作为一个练习,我创建了:
type NotRecursive<T, U = never> = {
[K in keyof T]: T[K] extends U | T ? never : NotRecursive<T[K], U | T>
}
哪个工作得相当好[1],但随后浏览文档并发现:
与联合和交集类型类似,条件类型不允许递归地引用自身。例如以下是一个错误。
type ElementType<T> = T extends any[] ? ElementType<T[number]> : T; // Error
为什么我的NotRecursive
类型有效但文档示例无效?
[1] 如果它未能创建类型而不是允许它存在并且使用失败,那将会很好。
解决方案
推荐阅读
- database - 数据仓库的放置位置
- html - 如何手动将字体存储在谷歌浏览器中?
- php - 在 WooCommerce 中设置最低未打折订单金额
- r - 在数据框的列上使用 sapply?-R
- asp.net - API逻辑架构循环依赖
- laravel - 为什么提交表单后页面保持空白?
- airflow - Airflow 将数据流任务标记为失败,但实际上成功了
- android - 如何在android11上获得本机屏幕录像机的通知?
- flutter - 如何使用(键和值)颤动在列表或映射中添加数据
- swift - Swift simulator looks different from storyboard