如何在没有“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 的人,快速修复将打开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 类型?的主要内容,如果未能解决你的问题,请参考以下文章