typescript - 如何检查联合中的值是否包含在提取的联合中
问题描述
我需要了解来自联合类型的超集的值是否与通过Extract
.
它遵循一个示例,该示例显示了代码的工作版本,其中我接受了来自超集 ( Omni
) 的类型化值,但我被迫复制定义子集类型 ( Mini
) 的代码:
type Omni = 'a' | 'b' | 'c'
type Mini = Extract<Omni, 'c' | 'b'>
const isMini = (value: Omni): value is Mini => {
/* This body works, but it contains a duplication of the values contained in Mini */
return ['c', 'b'].includes(value)
}
const included: Omni = 'b'
console.log(isMini(included)) // true
const excluded: Omni = 'a'
console.log(isMini(excluded)) // false
我对可以维护函数的类型签名isMini
并且不包括值列表的重复的打字稿解决方案感兴趣。
注意:这里是操场
解决方案
推荐阅读
- angular - 我可以使用模块联合技术在 Angular 中的另一个应用程序中渲染整个应用程序吗?
- azure-functions - 天蓝色活动。无法创建 [Type] 的实例,因为 Type.ContainsGenericParameters 为 true
- kubernetes - 复制负载均衡器
- python - 有时 pandas read_sql_query 返回空
- javascript - 如何使用反应在循环中基于当前 div 制作前置 div 样式
- keycloak - 用户如何在没有管理员身份的情况下重置密码?
- c# - 将附加参数传递给事件处理程序
- python - python - 如何将包含带有单引号的浮点值的列表转换为在python中没有单引号的那些值的列表?
- gatsby - 当我在 Contentful 上更改内容时需要重建 Gatsby 网站
- unit-testing - 如何使用 Mockito 取消模拟异常?