[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"github-release-vuejs-language-tools-v3.3.0":3,"$f2v3tzw7dti6zg":-1},{"adjacent":4,"latestReleases":16,"relatedArticles":37,"relatedArticlesAreVersioned":8,"release":38},{"newer":5,"older":11},{"htmlUrl":6,"id":7,"isPrerelease":8,"name":9,"publishedAt":10,"tagName":9},"https:\u002F\u002Fgithub.com\u002Fvuejs\u002Flanguage-tools\u002Freleases\u002Ftag\u002Fv3.3.1","019e40f7-2e3a-7288-85a5-f104ec5a3994",false,"v3.3.1","2026-05-19T14:47:50.000Z",{"htmlUrl":12,"id":13,"isPrerelease":8,"name":14,"publishedAt":15,"tagName":14},"https:\u002F\u002Fgithub.com\u002Fvuejs\u002Flanguage-tools\u002Freleases\u002Ftag\u002Fv3.2.9","019e22ec-be0c-73ae-a137-ba58ef148c92","v3.2.9","2026-05-13T17:01:54.000Z",[17,21,25,29,33],{"id":18,"isPrerelease":8,"name":19,"publishedAt":20,"tagName":19},"01a02431-3ebb-74b4-bf71-3873c8267e8b","v3.3.11","2026-08-21T10:07:16.000Z",{"id":22,"isPrerelease":8,"name":23,"publishedAt":24,"tagName":23},"01a0046f-58b7-708a-b1f1-207c12c0adc0","v3.3.10","2026-08-15T05:18:18.000Z",{"id":26,"isPrerelease":8,"name":27,"publishedAt":28,"tagName":27},"019fb72f-f783-7575-90ca-bf0b67619807","v3.3.9","2026-07-31T07:20:42.000Z",{"id":30,"isPrerelease":8,"name":31,"publishedAt":32,"tagName":31},"019f8a8e-2f14-77b8-8f06-9fc9ffa33cae","v3.3.8","2026-07-22T15:54:06.000Z",{"id":34,"isPrerelease":8,"name":35,"publishedAt":36,"tagName":35},"019f3fe1-fdf3-717b-8c77-67f70fbe9330","v3.3.7","2026-07-08T03:44:53.000Z",[],{"htmlUrl":39,"id":40,"isPrerelease":8,"name":41,"projectId":42,"projectName":43,"projectOwner":44,"projectRepo":45,"projectUrl":46,"publishedAt":47,"summary":48,"tagName":41,"updatedAt":49,"breakingChangesHtml":50,"displayName":51,"hasBreakingChanges":8,"indexable":52,"notesHtml":53,"version":54},"https:\u002F\u002Fgithub.com\u002Fvuejs\u002Flanguage-tools\u002Freleases\u002Ftag\u002Fv3.3.0","019e3af5-18ad-728a-9e2a-b491b44df4c9","v3.3.0","019d763a-a125-76f9-a73d-170956e8cc1f","Vue Language Tools","vuejs","language-tools","https:\u002F\u002Fgithub.com\u002Fvuejs\u002Flanguage-tools","2026-05-18T11:40:23.000Z","The v3.3.0 release of Vue Language Tools introduces refined autocomplete for component props, enhancing TypeScript behavior for dynamic prop inference. Additionally, a new option, `checkRequiredFallthroughAttributes`, ensures that required props from parent components are enforced correctly, eliminating missing prop errors. Bug fixes include resolving TS6307 errors in subprojects and preventing infinite diagnostics loops in large projects.","2026-05-18T12:00:12.561Z",null,"Vue Language Tools v3.3.0",true,"\u003Ch2>Features\u003C\u002Fh2>\n\u003Ch3>Refined Autocomplete for Component Props\u003C\u002Fh3>\n\u003Cp>Previously, we inferred props used for autocomplete from the component itself&#39;s type, which did not work well with components whose props need to be inferred dynamically, such as generics or discriminated unions.\u003C\u002Fp>\n\u003Cp>Now, we have improved this feature to better align with TS behavior. See the following example:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-vue\">&lt;script lang=&quot;ts&quot; setup&gt;\n  defineProps&lt;\n    | { type: &quot;foo&quot;; foo: string }\n    | { type: &quot;bar&quot;; bar: string }\n  &gt;();\n&lt;\u002Fscript&gt;\n\n&lt;template&gt;\n  &lt;Self type=&quot;foo&quot; :| \u002F&gt;\n  &lt;!--              ^ [foo, ...] --&gt;\n  &lt;Self type=&quot;bar&quot; :| \u002F&gt;\n  &lt;!--              ^ [bar, ...] --&gt;\n&lt;\u002Ftemplate&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>When triggering completions at the two positions above, we will now get the props that are actually available in each corresponding case.\u003C\u002Fp>\n\u003Cp>(PR: #5709)\u003C\u002Fp>\n\u003Ch3>Check Required Fallthrough Attributes\u003C\u002Fh3>\n\u003Cp>Consider the following structure:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-vue\">&lt;!-- basic.vue --&gt;\n&lt;script lang=&quot;ts&quot; setup&gt;\n  defineProps&lt;{\n    foo: string;\n    bar: string;\n  }&gt;();\n&lt;\u002Fscript&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cpre>\u003Ccode class=\"language-vue\">&lt;!-- comp.vue --&gt;\n&lt;script lang=&quot;ts&quot; setup&gt;\n  import Basic from &quot;.\u002Fbasic.vue&quot;;\n&lt;\u002Fscript&gt;\n\n&lt;template&gt;\n  &lt;Basic \u002F&gt;\n&lt;\u002Ftemplate&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>When the \u003Ccode>fallthroughAttributes\u003C\u002Fcode> option is enabled on \u003Ccode>Comp\u003C\u002Fcode>, \u003Ccode>Comp\u003C\u002Fcode> inherits all props from \u003Ccode>Basic\u003C\u002Fcode>, allowing us to get prop completions for \u003Ccode>Basic\u003C\u002Fcode> when using \u003Ccode>Comp\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>By default, however, the props inherited from \u003Ccode>Basic\u003C\u002Fcode> are all optional. This means we cannot enforce passing those required props when using \u003Ccode>Comp\u003C\u002Fcode>. At the same time, even if the required props from \u003Ccode>Basic\u003C\u002Fcode> are passed to \u003Ccode>Comp\u003C\u002Fcode>, \u003Ccode>Basic\u003C\u002Fcode> will still report missing prop errors.\u003C\u002Fp>\n\u003Cp>After enabling the new \u003Ccode>checkRequiredFallthroughAttributes\u003C\u002Fcode> option on \u003Ccode>Comp\u003C\u002Fcode>, \u003Ccode>Comp\u003C\u002Fcode> will inherit \u003Ccode>Basic\u003C\u002Fcode>&#39;s props exactly as they are, and the missing prop errors on \u003Ccode>Basic\u003C\u002Fcode> inside \u003Ccode>Comp\u003C\u002Fcode> will disappear. This is because doing so is equivalent to promising that these required props should be passed when using \u003Ccode>Comp\u003C\u002Fcode>. Additionally, if some of the props required by \u003Ccode>Basic\u003C\u002Fcode> have already been passed directly to \u003Ccode>Basic\u003C\u002Fcode>, those props will be excluded from the inherited props.\u003C\u002Fp>\n\u003Cp>(PR: #6049)\u003C\u002Fp>\n\u003Ch2>Bug Fixes\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>In subprojects using project references, importing Vue files from another project will no longer trigger TS6307 errors (PR: #6048)\u003C\u002Fli>\n\u003Cli>When the \u003Ccode>js\u002Fts.tsserver.experimental.enableProjectDiagnostics\u003C\u002Fcode> option is enabled, Vue files in large projects will no longer trigger diagnostics in an infinite loop (PR: #6051)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2>Changelog\u003C\u002Fh2>\n\u003Cp>Please refer to \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fvuejs\u002Flanguage-tools\u002Fblob\u002Fmaster\u002FCHANGELOG.md\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">CHANGELOG.md\u003C\u002Fa> for details.\u003C\u002Fp>\n\u003Ch2>❤️ Thanks to Our Sponsors\u003C\u002Fh2>\nThis project is made possible thanks to our generous sponsors:\n\n\n  \n    \n      \n        Special Sponsor\n      \n    \n    \n      \n        \n        \n          \n        \n        Next Generation Tooling\n      \n    \n    \n      \n        Platinum Sponsors\n      \n    \n    \n      \n        \n          \n        \n        An approachable, performant and versatile framework for building web user interfaces.\n      \n      \n        \n          \n        \n        Stay in the flow with instant dev experiences.No more hours stashing\u002Fpulling\u002Finstalling locally\n         — just click, and start coding.\n      \n    \n    \n      \n        Gold Sponsors\n      \n    \n    \n      \n        \n          \n        \n      \n    \n    \n      \n        Silver Sponsors\n      \n    \n    \n      \n      \n      \n        \n      \n      \n      \n    \n  \n\n\n\n\tBecome a sponsor to support Vue\n\ttooling development\n","3.3.0"]