问题遇到的现象和发生背景
在vue3中封装table组件时,加入动态插槽,然后一旦设置插槽的name属性时,item数据类型会被重新推导
问题相关代码,请勿粘贴截图
//本来这个item的类型为ITableConfig类型
<template v-for="item in tableConfig" :key="item.prop">
<el-table-column
:prop="item.prop"
:label="item.label"
:min-width="item.width"
:show-overflow-tooltip="true"
align="center"
>
<template #default="scope">
//一旦插槽这里的name中使用item item会被推导为any
<slot :row="scope.row" :name="item.slotName"></slot>
</template>
</el-table-column>
</template>
运行结果及报错内容
“item”隐式具有类型 "any",因为它不具有类型批注,且在其自身的初始化表达式中得到直接或间接引用
我的解答思路和尝试过的方法
一开始我被这里卡的烦,直接通过ts配置消除了这个错误,但是终究不是根本解决