如何查看完全展开的TypeScript类型,而不带有“N个更多”和“…”?

64
在VSCode中,TypeScript会展示我定义的类型的非常有用的扩展。但是IntelliSense所展示的内容是有限制的。如果一个类型太长了,那么我会看到如下输出:

enter image description here

请注意末尾的“11个更多”。有时,为了解决困难的类型定义问题,查看“N个更多”部分中的内容非常有帮助。
是否有一种方法可以获得完全展开的类型定义(在开发过程中进行故障排除),而不隐藏那些“N个更多”消息中的内容? https://github.com/Microsoft/vscode/issues/6638 暗示这种能力可能在2017年2月之前尚不可用(也没有计划),但我不确定我是否正确阅读了该问题,并且无论如何事情可能已经发生了变化。
3个回答

77

尝试在tsconfig.json中将noErrorTruncation选项设置为true。 令人困惑的是,这个选项会影响至少一些情况下悬停显示的类型截断; 请参见此问题。 注意:如果您的类型真的很大,在尝试查看时VS Code可能会挂起。


2
不幸的是,正如问题链接中提到的那样,这似乎只能在某些情况下删除“...”,而不是全部。 - Hugheth
7
这个GitHub评论展示了一个解决方法:https://github.com/microsoft/TypeScript/issues/26238#issuecomment-672086446 引用一下: “对于使用VS Code的人来说,一个快速的解决方法是打开 <Microsoft VS Code安装文件夹>/resources/app/extensions/node_modules/typescript/lib/tsserver.js 并将大约在第12797行附近的代码 ts.defaultMaximumTruncationLength = 160 改为更高的数字,例如 ts.defaultMaximumTruncationLength = 800。” - Mattias Martens
8
为了清晰起见,请按以下选项设置: { "compilerOptions": { "noErrorTruncation": true, } } - fairidox
3
typescript-explorer扩展可能是更好的答案-https://github.com/Microsoft/TypeScript/issues/26238#issuecomment-1518834920 - undefined

21

被采纳的答案适用于类型描述长度为1600个字符或更少的情况。

要超越这个硬限制,需要按照GitHub上这个修复方法所述调整源代码。

引用该方法:

对于使用VS Code的人来说,快速修复方法是打开<Microsoft VS Code 安装文件夹>/resources/app/extensions/node_modules/typescript/lib/tsserver.js并在大约第12797行处更改ts.defaultMaximumTruncationLength = 160到更高的值,例如ts.defaultMaximumTruncationLength = 800

更改后,关闭并重新启动VSCode以获得预期效果。

(新硬限制将是您设置的值的10倍。)


FYI:当更改完成后,你可以使用(在MacOS中)command + P,然后输入> Developer: Reload Window来重新加载VSCode窗口。 - Samuel Méndez

5
在下一行中,您可以写入:
type SubType = TransformArray['']

将光标放在''之间,VS Code会显示更有帮助的弹出窗口。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接