打字稿:将相似键的类型合并为组合类型

时间:2020-08-15 12:26:46

标签: typescript

生成的类型给我:

buffer.rewind()

基本上,type Result = { common: string; } & ({ propA: number; propB: null } | { propA: null; propB: string }); propApropB的一部分。可以定义oneOfpropA,但不能同时定义它们。

这在我的代码的某些部分非常有用。

现在,我需要根据会给我的类型创建一个新类型:

propB

我需要在代码的另一部分中全部定义它们,并可能同时设置{ common: string; propA: number | null; propB: string | null; } propA。我试图以不同的方式“欺骗” TS编译器……没有成功!

首先,这里是我所拥有的一些帮助者:

propB

现在这是我尝试过的不同代码段:

type Diff<T, U> = T extends U ? never : T;
type ValueOf<T> = T[keyof T];

但是无事可做。 TS总是设法站起来,放回原来的type Inline<T> = {[key in keyof T]: T[key]} type Inline<T> = {[key in keyof T]: ValueOf<Pick<T, key>>} type Inline<T> = {[key in keyof T]: T[Diff<keyof T, Exclude<keyof T, key>> ]}

这甚至可能吗?希望如此,请告诉我我缺少了一些东西,谢谢!

0 个答案:

没有答案