TypeScript报错与解决方案 - 掘金 (juejin.cn)
vue3中如果存在两类动态名称的slot,ts会根据最后一个动态名称的slot进行类型推断,如果两类slot的参数不同,那么有可能出现TS239的错误,解决方案是,如果参数多的那个slot包含两类slot的所有参数,那就将参数多的那类slot最后渲染, 否则就只有相互补齐一个方案了。
就如下图所示,LsyJsonPageTable中定义两中类型的动态slot,一种包含所有参数,一种只包含部分参数。因此就需要注意定义顺序,必须将包含所有参数的slot,放到最后来定义。让ts能进行正确的类型推断。当然,如果你知道更好的解决方案,可以在评论中留言。