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

Posted

技术标签:

【中文标题】如何在没有“N more”和“...”的情况下查看完全扩展的 TypeScript 类型?【英文标题】:How to see a fully-expanded TypeScript type without "N more" and "..."? 【发布时间】:2019-04-06 08:54:26 【问题描述】:

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

注意结尾处的“11 more”。有时,为了解决一个困难的类型定义,查看“N more”部分中的内容真的很有帮助。

有没有办法获得(用于在开发期间进行故障排除)完全扩展的类型定义,而不需要那些“N more”消息来隐藏里面的内容?

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

不幸的是,在链接的问题中提到,这似乎只是在某些情况下删除了“...”,而不是全部 @Hugheth 这个 GitHub 评论显示了这些情况的解决方法:github.com/microsoft/TypeScript/issues/… 引用:“对于使用 VS Code 的人,快速修复将打开 /resources/app /extensions/node_modules/typescript/lib/tsserver.js 并在第 12797 行左右将 ts.defaultMaximumTruncationLength = 160 更改为更高的值,例如 ts.defaultMaximumTruncationLength = 800。” @MattiasMartens 您应该将此作为答案发布,只有接受的答案对我不起作用;但你的 gambiarra 做到了。 @carla 很高兴它对您有所帮助!我已经这样做了。谢谢。【参考方案2】:

accepted answer 适用于类型描述长度为 1600 个字符或更少的情况。

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

引用:

对于使用 VS Code 的人,一个快速修复方法是打开 <Microsoft VS Code install folder>/resources/app/extensions/node_modules/typescript/lib/tsserver.js 并在附近更改ts.defaultMaximumTruncationLength = 160 12797 到更高的值,例如 ts.defaultMaximumTruncationLength = 800

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

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

【讨论】:

以上是关于如何在没有“N more”和“...”的情况下查看完全扩展的 TypeScript 类型?的主要内容,如果未能解决你的问题,请参考以下文章

文档查看cat_more_less_head_tail

Linux如何使用正则表达式命令?文本文件操作命令

Linux常用命令--more

cmd中用了more以后怎么翻页?

Linux下如何查看文档的内容

Linux查看文件内容和wc命令详解