unstale

npm / vue-tsc

vue-tsc

What changed in vue-tsc 3, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-18.

8 breaking1 security3 deprecations3 new APIs and options2 performance3 behavior and defaults34 tooling50 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli on npm

vue-tsc 3104 changes

Breaking changes 8

  • Stops component-meta from checking JavaScript Vue files as TypeScript.

    3.3.12release notes

  • Overrides the inherited plugin list instead of being deduplicated during resolution.

    3.3.12release notes

  • class and style are no longer treated as boolean properties.

    3.3.4release notes

  • Slot props are camelized regardless of the htmlAttributes option.

    3.3.4release notes

  • Plugin configs are now placed under ctx.config.

    3.2.4release notes

  • Prioritizes non-warning completion entries over warning entries.

    3.2.0release notes

  • Narrows component and directive types, affecting the types available when using them.

    3.2.0release notes

  • Removes the ComponentType helper.

    3.2.0release notes

Security 1

Deprecations 3

  • The allCodeFeatures API is deprecated as code features are centralized.

    3.3.6release notes

  • Deprecates the forceUseTs option.

    3.2.0release notes

  • Deprecates the noDeclarations option.

    3.2.0release notes

New APIs and options 3

Performance 2

  • Reduces focus mode overhead in the VS Code extension.

    3.3.12release notes

  • A subset of template node transforms was rewritten for performance.

    3.2.9release notes

Behavior and default changes 3

  • Already-set props are excluded from inherited attrs only when this option is enabled.

    3.3.4release notes

  • Document symbols use the default HTML data provider.

    3.2.5release notes

  • Object keys are inferred as strings when they do not extend string.

    3.2.3release notes

Tooling 34

  • Infers the first parameter type of a default factory for defineModel.

    3.3.12release notes

  • Supports calling template bindings without .value.

    3.3.12release notes

  • Generates full fragment props for type checking.

    3.3.11release notes

  • Different extension sets across project references are supported.

    3.3.10release notes

  • Checks unused generic type parameters.

    3.3.9release notes

  • Upgrade to TypeScript 7 and support @typescript/typescript6.

    3.3.8release notes

  • Support vapor directives in language-core.

    3.3.8release notes

  • Setup bindings are included as potential component names.

    3.3.6release notes

  • Hints for destructured props respect variable hoisting.

    3.3.4release notes

  • Duplicate event listeners are detected across name formats.

    3.3.4release notes

  • Preserves literal types for inline v-for sources, allowing their literal types to remain available to type checking.

    3.3.2release notes

  • Gets component prop details from symbols.

    3.3.1release notes

  • Skips unchecked JS identifiers.

    3.3.1release notes

  • Includes extraFileExtensions in the tsserver configure request payload.

    3.3.0release notes

  • Props completion follows TypeScript behavior, filters fallback global completions, and returns props only for component nodes.

    3.3.0release notes

  • Adds checks for required fallthrough attributes.

    3.3.0release notes

  • Navigation now works for kebab-case declarations in GlobalComponents.

    3.2.8release notes

  • SCSS @import navigation now supports TypeScript module resolution.

    3.2.8release notes

  • Uses a regex for TypeScript extension patching to support VS Code 1.110+.

    3.2.6release notes

  • Type annotation is now supported via generics.

    3.2.4release notes

  • Quick info is forwarded only for original results without tags.

    3.2.3release notes

  • Completion edits for boolean props strip ="".

    3.2.2release notes

  • Avoids duplicate directive modifiers in completion.

    3.2.2release notes

  • Pre-maps the HTML to Pug offset attribute.

    3.2.2release notes

  • Quick info and suggestion diagnostics are forwarded only for setup bindings.

    3.2.2release notes

  • Corrects code features on v-bind shorthands of special attributes.

    3.2.2release notes

  • Shorthand props are shown only when no prefix has been typed.

    3.2.1release notes

  • Handles type imports in component auto-import.

    3.2.0release notes

  • Handles import type nodes in the definition proxy.

    3.2.0release notes

  • Adds tags to exposed metadata.

    3.2.0release notes

  • Renaming global components now includes end tag locations.

    3.2.0release notes

  • Supports markdown JSDoc for rich hover message descriptions.

    3.2.0release notes

  • Adds rich hover messages in the language service.

    3.2.0release notes

  • Adds support for the <!-- @strictTemplates --> magic comment.

    3.2.0release notes

Fixes and other changes 50

  • Avoids calling registerHooks on buggy Node versions.

    3.3.13release notes

  • Setup macros are generated without static imports.

    3.3.13release notes

  • Reports duplicate CSS module names, including names that are not identifiers.

    3.3.12release notes

  • Checks directive bindings with short arity by padding directive hook signatures.

    3.3.12release notes

  • Prevents typedef JSDoc from leaking into emitted declaration files.

    3.3.12release notes

  • Continues reference span fix-up when files have no styles.

    3.3.12release notes

  • Corrects template mapping boundaries and eliminates unmapped diagnostics.

    3.3.12release notes

  • Prevents watch mode from crashing on incremental builds.

    3.3.12release notes

  • Preserves union props when using withDefaults.

    3.3.12release notes

  • Invalidates module resolution caches when files are deleted.

    3.3.11release notes

  • Invalidates casing detection after template changes.

    3.3.11release notes

  • Trailing whitespace after generic parameter commas is ignored, preventing it from affecting type analysis.

    3.3.10release notes

  • SFC blocks are no longer extracted across inline Markdown code.

    3.3.10release notes

  • The item type is resolved over generic sources, improving type inference for v-for items.

    3.3.10release notes

  • Preserves trailing and current directive modifiers when completing inside a directive and when filtering duplicates.

    3.3.9release notes

  • Single-expression event handlers are wrapped to avoid automatic semicolon insertion after return.

    3.3.7release notes

  • Const globals are filtered from template completions.

    3.3.7release notes

  • Event handler expressions are treated as compound more accurately, preserving return types.

    3.3.6release notes

  • Inference is made type-safe across the .d.ts boundary.

    3.3.6release notes

  • CSS v-bind parsing now matches upstream behavior.

    3.3.6release notes

  • Duplicate listener checks now include event modifiers and raw event parts.

    3.3.5release notes

  • Prevents grammar scopes from leaking in capitalized tags.

    3.3.3release notes

  • Preserves TypeScript auto imports behavior in Vue files.

    3.3.3release notes

  • Aligns identifier skipping for v-bind shorthand with interpolation.

    3.3.2release notes

  • Avoids reporting an extraneous children error for conditional slots.

    3.3.1release notes

  • Resolves the TypeScript plugin path from the resolved server path.

    3.3.1release notes

  • Completion edits strip ="" only for plain boolean props, and the default data provider is reset after using the Vue data provider.

    3.3.0release notes

  • Re-supports html.customData for supplying custom HTML data.

    3.3.0release notes

  • Avoids infinite diagnostics on Vue files when project diagnostics is enabled.

    3.3.0release notes

  • Root-node collection now penetrates v-if branch fragments, improving single-root detection.

    3.3.0release notes

  • File rename edits are triggered when moving folders with Vue files.

    3.2.9release notes

  • Inline markdown syntax is no longer processed in semantic-aware segments.

    3.2.9release notes

  • Generates the $slots type correctly in templates when using defineSlots.

    3.2.6release notes

  • Avoids false positives when detecting destructured props on binding property names.

    3.2.6release notes

  • Infers only the readonly component of arrays in v-for.

    3.2.6release notes

  • Backtick attributes containing both quote types are handled.

    3.2.5release notes

  • The template is re-parsed when interpolation syntax breaks.

    3.2.5release notes

  • Using defineModel in lang="js" no longer breaks the AST.

    3.2.3release notes

  • Indentation for <style> and <script> tags is corrected.

    3.2.3release notes

  • Rename behavior is corrected for same-name shorthands in templates.

    3.2.3release notes

  • Strings are no longer used with yield*.

    3.2.3release notes

  • Provides accurate mapping for Pug shorthands.

    3.2.2release notes

  • Schema resolution is skipped correctly when option is false.

    3.2.1release notes

  • Array types are now inferred in v-for.

    3.2.1release notes

  • Finding references to CSS classes now includes the leading dot.

    3.2.0release notes

  • Filters irrelevant properties from exposed metadata.

    3.2.0release notes

  • Fixes a missing module error that occurs after a file rename.

    3.2.0release notes

  • Correctly resolves <script src=""> references.

    3.2.0release notes

  • Aligns the v-for key type with Object.keys.

    3.2.0release notes

  • Reverts an overcorrection in v-for type inference, changing the types inferred for v-for expressions.

    3.2.0release notes