typescript - 从选项数组中过滤掉无的最佳方法
问题描述
假设我有以下类型:
type OptionalArray = ReadonlyArray<Option<number>>
type DatabaseWriteArray = ReadonlyArray<number>
那么如何在类型之间进行转换呢?以下工作但感觉超级混乱:
const filterOptionals = (optionalArray: OptionalArray): DatabaseWriteArray => {
const filteredNullableArray = optionalArray.filter(isSome).map(toNullable)
return filteredNullableArray.filter(num => num !== null)
}
在这一点上,我什至不确定如果我必须立即将它们退出为可空值,我为什么还要为选项而烦恼。我可以通过少一步使用number | null
. 那么fp-ts
做到这一点的“方法”是什么?
解决方案
无需过多了解细节,我可以建议使用readonlyArray.compact
which 正是这样做的(甚至具有相同的签名):
import { readonlyArray } from 'fp-ts';
const filterOptionals = readonlyArray.compact;
推荐阅读
- c - 线程取消后程序卡住
- javascript - React - 使用多个 react-bootstrap 模式显示数据的正确方法
- spring-boot-configuration - 带有登录表单的 Spring Security 配置
- java - 线程 Main 中的异常:未解决非法格式精度
- java - 有没有办法计算 IO 活动(文件访问、读取的字节数)?
- android - Flutter - 如果我们有 RSA 公钥,如何解密 RSA 私钥加密字符串?
- fish - 如何在鱼壳中使用箭头键选择文本
- python - 如何对列表列表中的值进行分组并转换为字典列表
- java - 在 IntelliJ 中制作类文件
- python - 如何使用 Selenium 和 Python 提取电子邮件地址