[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-3905":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":16,"stars30d":17,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":18,"rankGlobal":10,"rankLanguage":10,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":20,"hasPages":20,"topics":22,"createdAt":10,"pushedAt":10,"updatedAt":31,"readmeContent":32,"aiSummary":33,"trendingCount":16,"starSnapshotCount":16,"syncStatus":34,"lastSyncTime":35,"discoverSource":36},3905,"pretty-ts-errors","yoavbls\u002Fpretty-ts-errors","yoavbls","🔵 Make TypeScript errors prettier and human-readable in VSCode 🎀","https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=yoavbls.pretty-ts-errors",null,"TypeScript",14072,109,21,16,0,5,41.12,"MIT License",false,"main",[23,24,25,26,27,28,29,30],"astro","deno","errors","svelte","typescript","vscode","vscode-extension","vue","2026-06-12 02:00:55","\u003Ca href=\"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=yoavbls.pretty-ts-errors\" style=\"display: none;\">\n  \u003Cpicture>\n    \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fyoavbls\u002Fpretty-ts-errors\u002Fmain\u002Fassets\u002Ficon.png\" width=\"140\">\n    \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fyoavbls\u002Fpretty-ts-errors\u002Fmain\u002Fassets\u002Ficon.png\" width=\"140\">\n    \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fyoavbls\u002Fpretty-ts-errors\u002Fmain\u002Fassets\u002Fempty.png\" alt=\"Logo\">\n  \u003C\u002Fpicture>\n\u003C\u002Fa>\n\n# Pretty `TypeScript` Errors\n\n\u003Cb>Make TypeScript errors prettier and human-readable in VSCode.\u003C\u002Fb>\n\n[![GitHub stars](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fyoavbls\u002Fpretty-ts-errors.svg?style=social&label=Star)](https:\u002F\u002FGitHub.com\u002Fyoavbls\u002Fpretty-ts-errors\u002Fstargazers\u002F)\n[![Visual Studio Code](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FVisual%20Studio%20Code-0078d7?logo=visualstudiocode&logoColor=white)](https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=yoavbls.pretty-ts-errors)&nbsp;[![GitHub license](https:\u002F\u002Fbadgen.net\u002Fgithub\u002Flicense\u002Fyoavbls\u002Fpretty-ts-errors)](https:\u002F\u002Fgithub.com\u002Fyoavbls\u002Fpretty-ts-errors\u002Fblob\u002Fmain\u002FLICENSE)&nbsp;[![Visual Studio Code](https:\u002F\u002Fimg.shields.io\u002Fvisual-studio-marketplace\u002Fi\u002Fyoavbls.pretty-ts-errors)](https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=yoavbls.pretty-ts-errors)\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fyoavbls\u002Fpretty-ts-errors\u002Fdiscussions\u002F43#user-content-jetbrains-support\">\u003Cimg src=\"https:\u002F\u002Fcdn.icon-icons.com\u002Ficons2\u002F2530\u002FPNG\u002F512\u002Fjetbrains_webstorm_button_icon_151873.png\" height=\"20\" alt=\"Webstorm logo\">\u003C\u002Fa>\n[![Cursor](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FCursor-000000?logo=cursor)](https:\u002F\u002Fopen-vsx.org\u002Fextension\u002Fyoavbls\u002Fpretty-ts-errors)\n\nTypeScript errors become messier as the complexity of types increases. At some point, TypeScript will throw on you a shitty heap of parentheses and `\"...\"`.\nThis extension will help you understand what's going on. For example, in this relatively simple error:\n\n\u003Cimg src=\".\u002Fassets\u002Fthis.png\" width=\"340.438px\" \u002F>&nbsp; &nbsp; \u003Cimg src=\".\u002Fassets\u002Finstead-of-that.png\" width=\"350px\" \u002F>\n\n## Watch this\n\n\u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=9RM2aErJs-s\" target=\"_blank\">\n \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fyoavbls\u002Fpretty-ts-errors\u002Fmain\u002Fassets\u002Fmentions\u002Ftheo-video.png\" alt=\"Watch theo's video\" width=\"600\" \u002F>\n\u003C\u002Fa>\n\nand others from:\n[Web Dev Simplified](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=ccg-erZYO4k&list=PL0rc4JAdEsVpOriHzlAG7KUnhKIK9c7OR&index=1),\n[Josh tried coding](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=_9y29Cyo9uU&list=PL0rc4JAdEsVpOriHzlAG7KUnhKIK9c7OR&index=3),\n[trash dev](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=WJeD3DKlWT4&list=PL0rc4JAdEsVpOriHzlAG7KUnhKIK9c7OR&index=4&t=208),\nand [more](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PL0rc4JAdEsVpOriHzlAG7KUnhKIK9c7OR)\n\n## Features\n\n- Syntax highlighting with your theme colors for types in error messages, supporting both light and dark themes\n- A button that leads you to the relevant type declaration next to the type in the error message\n- A button that navigates you to the error at [typescript.tv](http:\u002F\u002Ftypescript.tv), where you can find a detailed explanation, sometimes with a video\n- A button that navigates you to [ts-error-translator](https:\u002F\u002Fts-error-translator.vercel.app\u002F), where you can read the error in plain English\n\n## Supports\n\n- Node and Deno TypeScript error reporters (in `.ts` files)\n- JSDoc type errors (in `.js` and `.jsx` files)\n- React, Solid and Qwik errors (in `.tsx` and `.mdx` files)\n- Astro, Svelte and Vue files when TypeScript is enabled (in `.astro`, `.svelte` and `.vue` files)\n- Ember and Glimmer TypeScript errors and template issues reported by Glint (in `.hbs`, `.gjs`, and `.gts` files)\n\n## Installation\n\n```\ncode --install-extension yoavbls.pretty-ts-errors\n```\n\nOr simply by searching for `pretty-ts-errors` in the [VSCode marketplace](https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=yoavbls.pretty-ts-errors)\n\n#### How to hide the original errors and make the types copyable\n\nFollow the instructions [there](.\u002Fdocs\u002Fhide-original-errors.md). unfortunately, this hack is required because of VSCode limitations.\n\n## Why isn't it trivial\n\n1. TypeScript errors contain types that are not valid in TypeScript.\n   Yes, these types include things like `... more ...`, `{ ... }`, etc in an inconsistent manner. Some are also cutting in the middle because they're too long.\n2. Types can't be syntax highlighted in code blocks because the part of `type X = ...` is missing, so I needed to create a new TextMate grammar, a superset of TypeScript grammar called `type`.\n3. VSCode markdown blocks all styling options, so I had to find hacks to style the error messages. e.g., there isn't an inlined code block on VSCode markdown, so I used a code block inside a codicon icon, which is the only thing that can be inlined. That's why it can't be copied. but it isn't a problem because you can still hover on the error and copy things from the original error pane.\n   \u003Cimg src=\".\u002Fassets\u002Ferrors-hover.png\" width=\"600\" \u002F>\n\n## Hype section\n\n\u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Flive\u002FZze1y2iZ3bQ?si=Yj1Qw2S8FbGbTA5c&t=11589\">\n  \u003Cpicture>\n    \u003Cimg width=\"400\" src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fyoavbls\u002Fpretty-ts-errors\u002Fmain\u002Fassets\u002Fmentions\u002Fjs-nation.png?raw=true\" alt=\"Winning the Productivity Booster category at JSNation 2023\">\n  \u003C\u002Fpicture>\n\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Ftwitter.com\u002Ftannerlinsley\u002Fstatus\u002F1647982562026090496\">\n  \u003Cpicture>\n    \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fyoavbls\u002Fpretty-ts-errors\u002Fmain\u002Fassets\u002Fmentions\u002Ftanner-dark.png#gh-light-mode-only\">\n     \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fyoavbls\u002Fpretty-ts-errors\u002Fmain\u002Fassets\u002Fmentions\u002Ftanner-light.png#gh-light-mode-only\">\n    \u003Cimg width=\"400\" src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fyoavbls\u002Fpretty-ts-errors\u002Fmain\u002Fassets\u002Fmentions\u002Ftanner-dark.png#gh-dark-mode-only\" alt=\"Tanner's tweet\">\n  \u003C\u002Fpicture>\n\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Ftwitter.com\u002Ft3dotgg\u002Fstatus\u002F1647759462709747713\">\n  \u003Cpicture>\n    \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fyoavbls\u002Fpretty-ts-errors\u002Fmain\u002Fassets\u002Fmentions\u002Ftheo-dark.png#gh-dark-mode-only\">\n    \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fyoavbls\u002Fpretty-ts-errors\u002Fmain\u002Fassets\u002Fmentions\u002Ftheo-light.png#gh-light-mode-only\">\n    \u003Cimg width=\"400\" src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fyoavbls\u002Fpretty-ts-errors\u002Fmain\u002Fassets\u002Fmentions\u002Ftheo-dark.png#gh-dark-mode-only\" alt=\"Theo's tweet\">\n  \u003C\u002Fpicture>\n\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Ftwitter.com\u002Fjohnsoncodehk\u002Fstatus\u002F1646214711204286465\">\n  \u003Cpicture>\n    \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fyoavbls\u002Fpretty-ts-errors\u002Fmain\u002Fassets\u002Fmentions\u002Fjohnson-dark.png#gh-dark-mode-only\">\n    \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fyoavbls\u002Fpretty-ts-errors\u002Fmain\u002Fassets\u002Fmentions\u002Fjohnson-light.png#gh-light-mode-only\">\n    \u003Cimg width=\"400\" src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fyoavbls\u002Fpretty-ts-errors\u002Fmain\u002Fassets\u002Fmentions\u002Fjohnson-dark.png#gh-dark-mode-only\" alt=\"Johnson's tweet\">\n  \u003C\u002Fpicture>\n\u003C\u002Fa>\n\n### Stars from stars\n\n\u003Ctable>\n  \u003Ctbody>\n    \u003Ctr>\n      \u003Ctd align=\"center\">\n        \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fkentcdodds\">\n          \u003Cimg src=\"https:\u002F\u002Fimages.weserv.nl\u002F?url=github.com\u002Fkentcdodds.png&fit=cover&mask=circle\" width=\"80\">\u003Cbr>\n          Kent C. Dodds\n        \u003Ca\u002F>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\">\n        \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmattpocock\">\n          \u003Cimg src=\"https:\u002F\u002Fimages.weserv.nl\u002F?url=github.com\u002Fmattpocock.png&fit=cover&mask=circle\" width=\"80\">\u003Cbr>\n          Matt Pocock\n        \u003Ca\u002F>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\">\n        \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fkatt\">\n          \u003Cimg src=\"https:\u002F\u002Fimages.weserv.nl\u002F?url=github.com\u002Fkatt.png&fit=cover&mask=circle\" width=\"80\">\u003Cbr>\n          Alex \u002F KATT\n        \u003Ca\u002F>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\">\n        \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftannerlinsley\">\n          \u003Cimg src=\"https:\u002F\u002Fimages.weserv.nl\u002F?url=github.com\u002Ftannerlinsley.png&fit=cover&mask=circle\" width=\"80\">\u003Cbr>\n          Tanner Linsley\n        \u003Ca\u002F>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\">\n        \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ft3dotgg\">\n          \u003Cimg src=\"https:\u002F\u002Fimages.weserv.nl\u002F?url=github.com\u002Ft3dotgg.png&fit=cover&mask=circle\" width=\"80\">\u003Cbr>\n          Theo Browne\n        \u003Ca\u002F>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n## Sponsorship\n\nEvery penny will be invested in other contributors to the project, especially ones that work\non things that I can't be doing myself like adding support to the extension for other IDEs 🫂\n\n## Contribution\n\nHelp by upvoting or commenting on issues we need to be resolved [here](https:\u002F\u002Fgithub.com\u002Fyoavbls\u002Fpretty-ts-errors\u002Fdiscussions\u002F43)\nAny other contribution is welcome. Feel free to open any issue \u002F PR you think.\n","这个项目是一个Visual Studio Code扩展，旨在让TypeScript错误信息更加美观和易于理解。它通过使用代码主题颜色对错误消息中的类型进行语法高亮，并为错误消息中的类型提供一个按钮链接到相关类型的声明位置，从而提升开发者的调试体验。特别适合在处理复杂类型时遇到难以解析的错误信息场景下使用，能够显著提高理解和解决问题的效率。",2,"2026-06-11 02:57:02","top_language"]