【问题标题】:How to see a fully-expanded TypeScript type without "N more" and "..."?如何在没有“N more”和“...”的情况下查看完全扩展的 TypeScript 类型?
【发布时间】: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 月,此功能可能不可用(也未计划),但我不确定我是否正确阅读了该问题,并且无论在此期间情况是否发生了变化。

【问题讨论】:

    标签: typescript visual-studio-code intellisense


    【解决方案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 * 您设置的任何值。)

    【讨论】:

      猜你喜欢
      • 2020-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-29
      • 2020-01-30
      • 2014-03-03
      • 2022-06-15
      相关资源
      最近更新 更多