Typescript 推断接口上泛型的类型

Typescript 推断接口上泛型的类型,typescript,Typescript,这可能是一个重复,因为我认为这是一个相对常见的问题,但不幸的是,我没有找到任何东西 如果我想定义一个采用泛型的函数,typescript通常能够推断泛型的类型: const f=(x:Record)=>x; 常数x=f({a:{x:1},b:{x:1}); Typescript在这里没有问题,我不需要提供泛型的类型 然而,如果我尝试在一个界面中做同样的事情,我就不能;我需要明确提供以下类型: X型=记录; 常数x:x={a:{x:1},b:{x:1}; 在某些方面,我可以理解这是为什么;我们

这可能是一个重复,因为我认为这是一个相对常见的问题,但不幸的是,我没有找到任何东西

如果我想定义一个采用泛型的函数,typescript通常能够推断泛型的类型:

const f=(x:Record)=>x;
常数x=f({a:{x:1},b:{x:1});
Typescript在这里没有问题,我不需要提供泛型的类型

然而,如果我尝试在一个界面中做同样的事情,我就不能;我需要明确提供以下类型:

X型=记录;
常数x:x={a:{x:1},b:{x:1};
在某些方面,我可以理解这是为什么;我们可以在给变量赋值之前定义变量的类型,因此泛型并不总是可以推断的。但我也不能这样做:

constx={a:{x:1},b:{x:1}作为x;

似乎这是语言语法的一部分,对于类型和接口,您必须显式地提供泛型类型;但我是不是遗漏了什么?有人能提供任何帮助吗?

看起来这项工作正在进行中,请特别注意(而且,这与您的示例非常相似):

可能采用部分申请书中的

foo;//等于类型Bar=A |字符串| B


(我是通过搜索2314找到的,这是游乐场注册目前给出的错误代码。您的代码片段,我以前已经成功搜索了错误代码)。

回答得很好!很高兴知道我不是唯一有问题的人。我会等一会儿,看看是否有其他答案,否则这将是公认的答案