typescript - 如何从传递的对象数组中推断从属性中选取的值的总和类型
问题描述
我正在尝试将对象数组传递给函数。此函数必须查看其对象的一个属性背后的所有类型的值。这些类型的值应该作为类型参数传递给返回的函数
要达到这些结果,必须填写哪些类型的问号?
type A = { key: 'a' };
type B = { key: 'b' };
type C = { key: 'c' };
type Xs = (A | B | C)[];
const fn1 = (arg1: ???) => {
return {
f2: (arg2: ???) => null,
};
};
// should fail
fn1([]).f2('a');
// should also fail
fn1([{ key: 'a' }]).f2('c');
// correct
fn1([{ key: 'a' }, { key: 'b' }]).f2('a');
类似的东西Pick<ValuesType<(A | B | C)[]>, 'key'>['key']
可以用来获取"a" | "b" | "c"
类型。但是如何推断形成传递数组的类型子集对我来说仍然是个难题。
解决方案
推荐阅读
- c++ - 在这种情况下,为什么 bool 类型的输出等于 0?
- fullcalendar - fullCalendar 调度程序在空闲空间中分组事件
- sql - 使用 Postgre 进行 POSIX (~*) 搜索。结果顺序
- excel - 单击摘要选项卡上的单元格/链接,将我带到不同的选项卡并更改切片器的值
- c# - 通用值类型的自定义 BsonSerializer
- excel - 如何修改宏以使其排序?
- java - 使用空引用访问数组时出现空指针异常
- javascript - 如何设计树形结构的猫鼬模型
- pytorch - PyTorch 中的“需要毕业生”有什么作用,我应该使用它吗?
- php - 如何在 docker 容器中安装和配置 Apache、PHP 和 MySQL