typescript - 如何从两种类型中选择共同的属性?
问题描述
我想通过仅选择两种类型中都存在的成员来创建类型:
interface A {
X: number;
Y: number;
}
interface B {
Y: number;
Z: number;
}
type C = Common<A, B>; // { Y: number; }
是否有内置的实用程序类型、命题或常用模式来实现这一目标?
注意:我能够编写以下实用程序类型,但我认为很难推理
type Common<T1, T2> = Omit<T1, keyof Omit<T1, keyof T2>>
然而,有没有什么
解决方案
You may find this easier to read:
type C = Pick<A | B, keyof A & keyof B>; // { Y: number; }
It picks (Pick
) common properties (keyof A & keyof B
) from the sum of A and B (A | B
).
推荐阅读
- sql - 具有并发写入的序列号字段
- javascript - 如何从父级取消选中子Vue中已回答的问题
- javascript - 创建一个对象,其实例将在对象更改时更新
- python - Python:MySQLdb cursorclass 设置为 MySQLdb.cursors.DictCursor 时返回元组而不是字典
- reactjs - React 组件和 useState
- arrays - Swift - 更新嵌套字典中特定项目的值
- sql - 在 PostgreSQL 中创建触发器
- file - 如何用 Rust 创建二进制文件?
- c# - 在 aspx 网页中从后面调用函数
- python - 包含字母和整数的 Python 列表