-
-
Notifications
You must be signed in to change notification settings - Fork 478
Open
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
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