我是打字稿的新手,我定义了一些接口,如下所示:
interface A {
toRemove: string;
key1: "this1";
key2: number;
}
interface B {
toRemove: string;
key1: "this2";
key3: string;
}
Run Code Online (Sandbox Code Playgroud)
以及两个接口的联合:
type C = A|B;
Run Code Online (Sandbox Code Playgroud)
我想要做的是toRemove通过 C 从两个接口中删除密钥,如下所示:
type CC = Omit<A, "toRemove">|Omit<B, "toRemove">;
Run Code Online (Sandbox Code Playgroud)
但不必从两个接口中省略密钥。这将是理想的:
type CC = Omit<C, "toRemove">;
Run Code Online (Sandbox Code Playgroud)
但是,不幸的是,CC将是 type Pick<A|B, "key1">,key1两个接口中都存在的键在哪里。
从本质上讲,我想要实现的是一种要转换的“功能”:
A1|A2|...|An
Run Code Online (Sandbox Code Playgroud)
进入:
Omit<A1, K keyof A1>|Omit<A1, K keyof A2>|...|Omit<An, K keyof An>
Run Code Online (Sandbox Code Playgroud)
我遇到了这个答案/sf/answers/3940847151/,我有一种感觉,我需要的部分就在那里,但我真的不明白该代码中发生了什么。
typescript ×1