具有多个类型参数的泛型推断类型

阿耶斯

我正在尝试设置一个泛型,其中参数是另一个对象的键。extends keyof当两种类型都是函数的参数时,我可以使用它来完成此操作

但是,当提供键列表的类型不是参数,只是泛型类型时,打字稿需要设置两种泛型类型。

考虑以下代码:

interface Bar {
  z: string;
  t: number;
}

declare function foo1<T extends keyof Bar>(x: T)
let t1 = foo1('z');

declare function foo2<K, T extends keyof K>(x: T)
let t2 = foo2<Bar>('t');

declare function foo3<T>(x: T)
let t3 = foo3<keyof Bar>('t');

游乐场链接

foo2由于T未指定第二种类型,函数失败但是我觉得 TS 应该能够在没有明确的第二种类型的情况下推断出正确的类型。

foo3 是我的解决方法,但使用起来不太好,是否可以让 typescript 执行此推理,或者这将是向 TS 团队提交的功能请求/错误报告?

沙恩

你与foo2. 这就是让它工作应该做的事情。

declare function foo2<T, K = keyof T>(x: K)
let t2 = foo2<Bar>('t');

您可以将一个类型分配给一个类型(在本例中为 的类型T,而不是期待一个新的泛型类型参数

也可以直接将参数类型分配keyof给给定的泛型类型T

declare function foo4<T>(x: keyof T);
let t4 = foo4<Bar>('t');

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

具有类参数的泛型类型推断

来自分类Dev

具有对其他类型参数的约束的类型参数的泛型推断

来自分类Dev

从参数推断泛型类型

来自分类Dev

具有多个特征的泛型类型

来自分类Dev

具有多个泛型类型的ArrayList?

来自分类Dev

C#从具有约束的泛型推断类型

来自分类Dev

在TypeScript中,如何获取具有多个类型参数的方法中的泛型类型参数?

来自分类Dev

TypeScript泛型:参数类型推断

来自分类Dev

检查对象是否是具有多个类型参数的泛型类型

来自分类Dev

从泛型推断类型

来自分类Dev

为什么Scala不从泛型类型参数推断类型?

来自分类Dev

为什么Scala不从泛型类型参数推断类型?

来自分类Dev

Scala:泛型的类型推断及其类型参数

来自分类Dev

Typescript泛型:从函数参数的类型推断类型?

来自分类Dev

具有静态成员约束的泛型类型上的类型推断失败

来自分类Dev

目标类型具有通配符时的泛型方法类型推断

来自分类Dev

目标类型具有通配符时的泛型方法类型推断

来自分类Dev

具有多个参数的泛型类中的从属类型约束

来自分类Dev

c#中具有多个类型参数的泛型方法

来自分类Dev

具有类型依赖参数的 TypeScript 泛型方法

来自分类Dev

泛型类型推断的 Typescript 泛型

来自分类Dev

调用具有多个泛型类型的泛型方法,而无需指定每个泛型类型

来自分类Dev

从嵌套类型推断泛型

来自分类Dev

Swift 泛型类型推断

来自分类Dev

类型推断:泛型,“var”

来自分类Dev

C#5.0泛型:参数类型推断

来自分类Dev

从函数回调中推断泛型类型参数

来自分类Dev

Kotlin-是否可以推断泛型类型参数?

来自分类Dev

调用泛型方法时如何推断参数类型?

Related 相关文章

热门标签

归档