Subscribe on changes!

当使用typescript开发时,定义的命名slot,在使用时,过不了typescript的类型检查,请教要如何处理

avatar
Feb 10th 2022

Version

3.2.30

Reproduction link

sfc.vuejs.org/

Steps to reproduce

当使用typescript开发的组件用到了命名的slot时,在引用的组件中使用#引用就会报类型检查错误,

What is expected?

不应该有类型错误提示

What is actually happening?

Element implicitly has an 'any' type because expression of type '"action-buttons"' can't be used to index type '{} | {}'. Property 'action-buttons' does not exist on type '{} | {}'.

110 <template #action-buttons>


我使用vite build && vue-tsc --declaration --emitDeclarationOnly是无法编译过去。这个有什么办法解决

avatar
Feb 10th 2022

No problem is found using the official template. :lying_face:

avatar
Feb 10th 2022

No problem is found using the official template. 🤥

我也是用vite create创建的项目

avatar
Feb 10th 2022

No problem is found using the official template. 🤥

我也是用vite create创建的项目

You can provide a replica using github or gitee. :smile:

avatar
Feb 10th 2022

No problem is found using the official template. 🤥

我也是用vite create创建的项目

You can provide a replica using github or gitee. 😄

thanks我找到原因了,是因为在vite.config.ts中配置了 alias: { '@': resolve('./src'), '#@': resolve('./src/frame-library'), vue: 'vue/dist/vue.esm-bundler.js' // 定义vue的别名,如果使用其他的插件,可能会用到别名 } 当我引用组件使用. import '#@/xxxxxx.vue'时,就会出现这个类型校验问题,但如果使用 @ 就不会了。这个问题有点奇怪了

avatar
May 8th 2023

我是vue-tsc版本太低了,升级一下就好了