是否可以在VSCode(或其他地方)中显示typescript类型/接口的完整计算类型

是否可以在VSCode(或其他地方)中显示typescript类型/接口的完整计算类型,typescript,visual-studio-code,Typescript,Visual Studio Code,当您将鼠标悬停在VSCode中的某个类型上时,它会显示该类型,但如果您有一个更大的类型,它通常会显示为{a:string;…24 more…;z:string}。有没有可能让它以某种方式显示完整的类型 类似地,如果您有两种类型的交集,则有时它将仅显示为Type1&Type2,而不是显示完整类型,或者如果您使用Pick,则它将显示Pick 在所有这些情况下,我认为检查我对typescript所做的工作的理解是有用的,以便有时能够看到完整的类型,我想知道是否有办法做到这一点,无论是通过vscode还

当您将鼠标悬停在VSCode中的某个类型上时,它会显示该类型,但如果您有一个更大的类型,它通常会显示为
{a:string;…24 more…;z:string}
。有没有可能让它以某种方式显示完整的类型

类似地,如果您有两种类型的交集,则有时它将仅显示为
Type1&Type2
,而不是显示完整类型,或者如果您使用
Pick
,则它将显示
Pick


在所有这些情况下,我认为检查我对typescript所做的工作的理解是有用的,以便有时能够看到完整的类型,我想知道是否有办法做到这一点,无论是通过vscode还是通过typescript的工具。

不,没有。然而,TS的最新版本确实比以前做得更好。当我对类型进行故障排除时,我会使用一些技术来分解复杂类型

最大的问题是为要检查的属性创建类型。然后可以在对象中建立索引以检查类型。不理想,但简单、快速

const object1 = { a1: 4, b1: "test", c1: true, d1: ["test", "test2"], e1: { ea1: "yes", eb1: 3, ec1: [4] } as const } as const;
const object2 = { a2: 4, b2: "test2", c2: false, d1: ["testw", "testw2"], e2: { ea2: "no", eb2: 5, ec2: [8] } as const } as const;
const object3 = { a3: 4, b3: "test", c3: true, d3: ["test", "test2"], e3: { ea3: "never", eb3: 3, ec3: [4] } as const } as const;
const object4 = { a4: 4, b4: "test2", c4: false, d4: ["testw", "testw2"], e4: { ea4: "maybe", eb4: 5, ec4: [8] } as const } as const;
type testComplexType = typeof object1 & typeof object2 & typeof object3 & typeof object4;

type whatTypeIsThis = testComplexType["e1"]["ea1"]; //yes
type whatTypeIsThis2 = testComplexType["e2"]["ea2"]; //no
type whatTypeIsThis3 = testComplexType["e3"]["ea3"]; //never
type whatTypeIsThis4 = testComplexType["e4"]["ea4"]; //maybe

要防止(部分)tooptip截断,可以使用
“noErrorRun阳离子”:true
编译器选项。要扩展映射类型,可以使用以下技巧:我刚刚在这里发布了一个类似的问题