对于 Typescript 交集类型(类型 C = A 和 B),如何在 IDE 提示中查看结果类型签名而不是组件?

For Typescript intersection type (type C = A & B), how to see resulting type signature instead of components in IDE hints?

在 Typescript 中,当检查交集定义的类型时,我看到与原始定义相同的提示:

但我想看看最终的形状,像这样:

什么是快速/高效的方法?

我认为没有任何方法可以让您的 IDE 自动执行此操作,但您可以创建一个类型函数来计算您要查找的类型。从 的答案,我会写 Expand:

type Expand<T> = T extends infer U ? { [K in keyof U]: U[K] } : never;

它接受一个类型(或类型的联合)并遍历其所有属性,即使它们来自多个交集,并将它(或每个联合成员)打包到单个对象类型中。然后你可以写 Expand<C> 或者你可以定义 CExpand<A & B>:

type ExpandedC = Expand<A & B>;
/*
type ExpandedC = {
    a: number;
    b: string;
    c: boolean;
    d: Date;
}
*/

这就是你想要的。好的,希望有所帮助;祝你好运!

Playground link to code