如何查看没有 "N more" 和“...”的完全扩展的 TypeScript 类型?

How to see a fully-expanded TypeScript type without "N more" and "..."?

在 VSCode 中,TypeScript 显示了我定义的类型的非常有用的扩展。但是 TS 在 IntelliSense 中显示的内容是有限制的。如果类型太长,我会看到这样的输出:

注意结尾附近的“11 more”。有时,为了对一个困难的类型定义进行故障排除,查看 "N more" 部分中的内容真的很有帮助。

有没有办法在没有那些 "N more" 消息来隐藏内部内容的情况下获取(用于开发期间的故障排除目的)完全扩展的类型定义?

https://github.com/Microsoft/vscode/issues/6638 表示截至 2017 年 2 月,此功能可能不可用(也未计划),但我不确定我是否正确阅读了该问题,无论在此期间是否发生了变化.

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

适用于类型描述的长度不超过 1600 个字符的情况。

要超越此硬性限制,有必要调整源代码,如 GitHub 上发布的 this fix 中所述。

引用:

For people using VS Code, a quick fix would be opening <Microsoft VS Code install folder>/resources/app/extensions/node_modules/typescript/lib/tsserver.js and change ts.defaultMaximumTruncationLength = 160 at around line 12797 to something higher like ts.defaultMaximumTruncationLength = 800.

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

(新的硬限制将为 10 * 您设置的任何值。)