-
-
Notifications
You must be signed in to change notification settings - Fork 8.9k
Closed
Description
Vue version
3.3.1
Link to minimal reproduction
https://github.com/dimatakoy/vue-ts-bug
Steps to reproduce
Just use a common pattern that allows for convenient autocomplete code in SFC components
interface MyButtonProps extends ButtonHTMLAttributes {
variant: 'blue' | 'white'
}
// or
type MyButtonTypeProps = {
variant: 'blue | 'white'
} & ButtonHTMLAttributes
// or
interface MyButtonProps extends ButtonHTMLAttributes {
}
# Or just build repro example, you will see error in terminal.
npm run build
What is expected?
works
What is actually happening?
[vite:vue] [@vue/compiler-sfc] Failed to resolve index type into finite keys
__masked__/vue-ts-bug/node_modules/@vue/runtime-dom/dist/runtime-dom.d.ts
1258| }
1259| type EventHandlers<E> = {
1260| [K in keyof E]?: E[K] extends (...args: any) => any ? E[K] : (payload: E[K]) => void;
| ^^^^^^^
1261| };
1262|
file: __masked__/vue-ts-bug/src/MyButton.vue
error during build:
Error: [@vue/compiler-sfc] Failed to resolve index type into finite keys
__masked__/vue-ts-bug/node_modules/@vue/runtime-dom/dist/runtime-dom.d.ts
1258| }
1259| type EventHandlers<E> = {
1260| [K in keyof E]?: E[K] extends (...args: any) => any ? E[K] : (payload: E[K]) => void;
| ^^^^^^^
1261| };
1262|
at ScriptCompileContext.error (__masked__/vue-ts-bug/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js:15839:11)
at resolveStringType (__masked__/vue-ts-bug/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js:18187:14)
at resolveMappedType (__masked__/vue-ts-bug/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js:18080:16)
at innerResolveTypeElements (__masked__/vue-ts-bug/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js:17926:14)
at resolveTypeElements (__masked__/vue-ts-bug/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js:17900:35)
at innerResolveTypeElements (__masked__/vue-ts-bug/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js:17945:16)
at resolveTypeElements (__masked__/vue-ts-bug/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js:17900:35)
at resolveInterfaceMembers (__masked__/vue-ts-bug/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js:18068:25)
at innerResolveTypeElements (__masked__/vue-ts-bug/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js:17912:14)
at resolveTypeElements (__masked__/vue-ts-bug/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js:17900:35)
System Info
System:
OS: macOS 13.3.1
CPU: (8) arm64 Apple M1
Memory: 103.86 MB / 8.00 GB
Shell: 5.9 - /bin/zsh
Binaries:
Node: 18.16.0 - ~/.n/bin/node
Yarn: 1.22.19 - ~/.n/bin/yarn
npm: 9.6.6 - ~/.n/bin/npm
Browsers:
Chrome: 113.0.5672.92
Safari: 16.4
npmPackages:
vue: ^3.3.1 => 3.3.1
Any additional comments?
looks like it works on 3.2.* and breaks after 3.3.*
RomanSkrypnik and brunoalod
Metadata
Metadata
Assignees
Labels
No labels