typescript - 如何从 Typescript 中数组中的项类型中删除空接口类型
问题描述
interface EmptyObject {}
interface TypeA {
type: 'A';
}
interface TypeB {
type: 'B';
}
type ItemType = EmptyObject | TypeA | TypeB;
type IArray = (ItemType | null)[] | undefined;
这些是生成的类型,这里的问题是ItemType是一个联合,并且总是带有一个EmptyObject类型,我们无法控制源,所以我在想:
- 是否可以编写一个实用程序类型来删除
EmptyObject
fromIArray
?向下嵌套 1 层。我知道如何删除EmptyObject
,ItemType
但不知道如何删除IArray
- 或者我们是否可以编写一个函数,以便我们可以做类似的事情
const listOfTypeAorTypeB = getItems(array: IArray)
,在这种情况下,listOfTypeAorTypeB
它只包含TypeA
oTypeB
? - 或 to 的函数
const listofTypeA = getItems(array: IArray)
,仅在此处获取 TypeA。
约束是:
- 应该足够通用,
getItems()
所以我们不需要每次都改变实现,它可以接收第二个参数接收一个回调来确定类型检查 - 不
as
,我们可以简单地使用 as 当我们使用它时,但我正在考虑让打字稿从代码中推断出类型。谢谢
解决方案
推荐阅读
- math - 序列中的下一个数字 || 一般的做法
- google-cloud-platform - 为什么 terraform 要求我在每次申请 GCP 项目时重新创建子网?
- c++ - 这个函数是什么意思(对不起我的英语)
- ruby-on-rails - Rails ActiveModel - 更新嵌套属性并添加新属性
- html - 我需要将 2 个图像并排居中(扭曲)并在悬停时更改图像,好像我不能同时做这两个
- php - Laravel - 将其他列值保存到数据透视表
- angular - 带有 SSR express PM2 的 Angular 9 路径路由
- docker - Docker 构建失败并在数组切片处出错
- python - Python,IndexError:用作索引的数组必须是整数(或布尔)类型
- node.js - Graphql 查询在 mongodb 聚合中返回空 id