-
- Notifications
You must be signed in to change notification settings - Fork 487
Labels
good reproduction ✨This issue provides a good reproduction, we will be able to investigate it firstThis issue provides a good reproduction, we will be able to investigate it first🔩 p2-edge-case
Description
Vue - Official extension or vue-tsc version
3.0.5
VSCode version
1.102.3
Vue version
3.5.18
TypeScript version
5.8.0
System Info
System: OS: macOS 26.0 CPU: (8) arm64 Apple M1 Memory: 267.22 MB / 16.00 GB Shell: 5.9 - /bin/zsh Binaries: Node: 22.15.0 - ~/.nvm/versions/node/v22.15.0/bin/node Yarn: 2.4.3 - ~/.nvm/versions/node/v22.15.0/bin/yarn npm: 11.3.0 - ~/.nvm/versions/node/v22.15.0/bin/npm pnpm: 9.15.9 - ~/.nvm/versions/node/v22.15.0/bin/pnpm Browsers: Brave Browser: 138.1.80.125 Chrome: 138.0.7204.184 Safari: 26.0
package.json dependencies
{ "dependencies": { "vue": "^3.5.18" }, "devDependencies": { "@tsconfig/node22": "^22.0.1", "@types/node": "^22.14.0", "@vitejs/plugin-vue": "^5.2.3", "@vue/tsconfig": "^0.7.0", "npm-run-all2": "^7.0.2", "typescript": "~5.8.0", "vite": "^6.2.4", "vite-plugin-vue-devtools": "^7.7.2", "vue-tsc": "^3.0.5" } }
Steps to reproduce
Having this component
LocalScope.vue
<script setup lang="ts" generic="T"> defineOptions({ inheritAttrs: false }); defineProps</* @vue-ignore */ T>(); </script> <template> <slot v-bind="$attrs as T" /> </template>
And this usage
<script setup lang="ts"> import LocalScope from './LocalScope.vue'; </script> <template> <LocalScope #default="{ foo, bar }" :foo="42" bar="baz"> {{ foo }} {{ bar }} </LocalScope> </template>
With vue-tsc@3
, running npx vue-tsc --build
, we have such results
src/App.vue:6:27 - error TS2339: Property 'foo' does not exist on type 'unknown'. 6 <LocalScope #default="{ foo, bar }" :foo="42" bar="baz"> ~~~ src/App.vue:6:32 - error TS2339: Property 'bar' does not exist on type 'unknown'. 6 <LocalScope #default="{ foo, bar }" :foo="42" bar="baz"> ~~~ Found 2 errors.
What is expected?
With vue-tsc@2
, running npx vue-tsc --build
, we no errors
What is actually happening?
With vue-tsc@3
, running npx vue-tsc --build
, we have such results
src/App.vue:6:27 - error TS2339: Property 'foo' does not exist on type 'unknown'. 6 <LocalScope #default="{ foo, bar }" :foo="42" bar="baz"> ~~~ src/App.vue:6:32 - error TS2339: Property 'bar' does not exist on type 'unknown'. 6 <LocalScope #default="{ foo, bar }" :foo="42" bar="baz"> ~~~ Found 2 errors.
Link to minimal reproduction
https://github.com/unrevised6419/issue-vue-tsc-3
Any additional comments?
This happens with Vue extension v3 also. Downgrading to v2, works fine.
2025-08-07.19-16-47.mov
eric-gitta-mooreeric-gitta-moore
Metadata
Metadata
Assignees
Labels
good reproduction ✨This issue provides a good reproduction, we will be able to investigate it firstThis issue provides a good reproduction, we will be able to investigate it first🔩 p2-edge-case