Skip to content

Update vue-tsc 3.2.7 → 3.3.1 (minor)#118

Open
depfu[bot] wants to merge 1 commit into
mainfrom
depfu/update/pnpm/vue-tsc-3.3.1
Open

Update vue-tsc 3.2.7 → 3.3.1 (minor)#118
depfu[bot] wants to merge 1 commit into
mainfrom
depfu/update/pnpm/vue-tsc-3.3.1

Conversation

@depfu
Copy link
Copy Markdown
Contributor

@depfu depfu Bot commented May 20, 2026

Here is everything you need to know about this update. Please take a good look at what changed and the test results before merging this pull request.

What changed?

✳️ vue-tsc (3.2.7 → 3.3.1) · Repo · Changelog

Release Notes

3.3.1

language-core

  • fix: avoid extraneous children error for conditional slots (#6056) - Thanks to @KazariEX!

language-service

  • refactor: replace scanner-based missing props hints detection with AST traversal - Thanks to @KazariEX!

typescript-plugin

  • fix: get component prop details from symbols - Thanks to @KazariEX!
  • fix: skip unchecked JS identifiers in component props (#6055) - Thanks to @KazariEX!

vscode

  • fix: resolve typescript plugin path from resolved server path (#6058) - Thanks to @KazariEX!

Our Sponsors ❤️

This project is made possible thanks to our generous sponsors:

Special Sponsor

Next Generation Tooling

Platinum Sponsors

An approachable, performant and versatile framework for building web user interfaces.

Stay in the flow with instant dev experiences.
No more hours stashing/pulling/installing locally

— just click, and start coding.

Gold Sponsors
Silver Sponsors

Become a sponsor to support Vue tooling development

3.3.0

Features

Refined Autocomplete for Component Props

Previously, we inferred props used for autocomplete from the component itself's type, which did not work well with components whose props need to be inferred dynamically, such as generics or discriminated unions.

Now, we have improved this feature to better align with TS behavior. See the following example:

<script lang="ts" setup>
  defineProps<
    | { type: "foo"; foo: string }
    | { type: "bar"; bar: string }
  >();
</script>

<template>
<Self type="foo" :| />
<!-- ^ [foo, ...] -->
<Self type="bar" :| />
<!-- ^ [bar, ...] -->
</template>

When triggering completions at the two positions above, we will now get the props that are actually available in each corresponding case.

(PR: #5709)

Check Required Fallthrough Attributes

Consider the following structure:

<!-- basic.vue -->
<script lang="ts" setup>
  defineProps<{
    foo: string;
    bar: string;
  }>();
</script>
<!-- comp.vue -->
<script lang="ts" setup>
  import Basic from "./basic.vue";
</script>

<template>
<Basic />
</template>

When the fallthroughAttributes option is enabled on Comp, Comp inherits all props from Basic, allowing us to get prop completions for Basic when using Comp.

By default, however, the props inherited from Basic are all optional. This means we cannot enforce passing those required props when using Comp. At the same time, even if the required props from Basic are passed to Comp, Basic will still report missing prop errors.

After enabling the new checkRequiredFallthroughAttributes option on Comp, Comp will inherit Basic's props exactly as they are, and the missing prop errors on Basic inside Comp will disappear. This is because doing so is equivalent to promising that these required props should be passed when using Comp. Additionally, if some of the props required by Basic have already been passed directly to Basic, those props will be excluded from the inherited props.

(PR: #6049)

Bug Fixes

  • In subprojects using project references, importing Vue files from another project will no longer trigger TS6307 errors (PR: #6048)
  • When the js/ts.tsserver.experimental.enableProjectDiagnostics option is enabled, Vue files in large projects will no longer trigger diagnostics in an infinite loop (PR: #6051)

Changelog

Please refer to CHANGELOG.md for details.

❤️ Thanks to Our Sponsors

This project is made possible thanks to our generous sponsors:

Special Sponsor

Next Generation Tooling

Platinum Sponsors

An approachable, performant and versatile framework for building web user interfaces.

Stay in the flow with instant dev experiences.
No more hours stashing/pulling/installing locally

— just click, and start coding.

Gold Sponsors
Silver Sponsors

Become a sponsor to support Vue tooling development

3.2.9

language-core

  • fix: do not process inline markdown syntax in semantic-aware segments (#6038) - Thanks to @KazariEX!
  • perf: rewrite a subset of template node transforms (#5769) - Thanks to @KazariEX!

vscode

  • fix: trigger file rename edits when moving folders with Vue files (#6046) - Thanks to @KazariEX!

workspace

  • chore: bump volar services to 0.0.71 (#6043) - Thanks to @TRIS-H!

Our Sponsors ❤️

This project is made possible thanks to our generous sponsors:

Special Sponsor

Next Generation Tooling

Platinum Sponsors

An approachable, performant and versatile framework for building web user interfaces.

Stay in the flow with instant dev experiences.
No more hours stashing/pulling/installing locally

— just click, and start coding.

Gold Sponsors
Silver Sponsors

Become a sponsor to support Vue tooling development

3.2.8

language-core

  • fix: replace inline code blocks after sfc blocks processing (#6024) - Thanks to @KazariEX!
  • fix: support navigation for kebab-case declarations in GlobalComponents (#6026) - Thanks to @Gehbt!

language-service

  • feat: support TS module resolution for SCSS @import navigation (#6033) - Thanks to @KazariEX!

typescript-plugin

  • fix: replace language service per-method overrides with a proxy (#6035) - Thanks to @KazariEX!

vscode

  • chore: upgrade reactive-vscode to v1.0.1 (#6019) - Thanks to @kermanx!

Our Sponsors ❤️

This project is made possible thanks to our generous sponsors:

Special Sponsor

Next Generation Tooling

Platinum Sponsors

An approachable, performant and versatile framework for building web user interfaces.

Stay in the flow with instant dev experiences.
No more hours stashing/pulling/installing locally

— just click, and start coding.

Gold Sponsors
Silver Sponsors

Become a sponsor to support Vue tooling development

Does any of this look wrong? Please let us know.

Commits

See the full diff on Github. The new version differs by 46 commits:


Depfu Status

Depfu will automatically keep this PR conflict-free, as long as you don't add any commits to this branch yourself. You can also trigger a rebase manually by commenting with @depfu rebase.

All Depfu comment commands
@​depfu rebase
Rebases against your default branch and redoes this update
@​depfu recreate
Recreates this PR, overwriting any edits that you've made to it
@​depfu merge
Merges this PR once your tests are passing and conflicts are resolved
@​depfu cancel merge
Cancels automatic merging of this PR
@​depfu close
Closes this PR and deletes the branch
@​depfu reopen
Restores the branch and reopens this PR (if it's closed)
@​depfu pause
Ignores all future updates for this dependency and closes this PR
@​depfu pause [minor|major]
Ignores all future minor/major updates for this dependency and closes this PR
@​depfu resume
Future versions of this dependency will create PRs again (leaves this PR as is)

@depfu depfu Bot added the depfu label May 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants