【发布时间】:2019-07-18 23:35:21
【问题描述】:
我是 typescript 的新手,我有几个这样定义的接口:
interface A {
toRemove: string;
key1: "this1";
key2: number;
}
interface B {
toRemove: string;
key1: "this2";
key3: string;
}
两个接口的联合:
type C = A|B;
我想做的是通过C从两个接口中删除toRemove键,如下所示:
type CC = Omit<A, "toRemove">|Omit<B, "toRemove">;
但不必从两个接口中省略密钥。 这将是理想的:
type CC = Omit<C, "toRemove">;
但是,不幸的是,CC 将是 Pick<A|B, "key1"> 类型,其中 key1 是两个接口中都存在的键。
本质上,我要实现的是一种要转换的“功能”:
A1|A2|...|An
进入:
Omit<A1, K keyof A1>|Omit<A1, K keyof A2>|...|Omit<An, K keyof An>
我遇到了这个答案https://stackoverflow.com/a/56297816/6520174,我觉得我需要的部分内容就在其中,但我并不真正理解该代码中发生了什么。
【问题讨论】:
标签: typescript