给validateInput添加验证功能

来源:5-5 ValidateInput 编码第四部分 — 使用 $attrs 支持默认属性

Symbol王独秀

2022-02-07

老师,我使用最新版本的mitt给validateInput添加验证功能时ts报这个错,该怎么解决呢?我百度了没找到答案图片描述

写回答

2回答

张轩

2022-02-09

同学你好 首先我们搞清楚哪里出问题了

你改造了 form-item-created 这个事件需要传递的参数。

现在的参数是:

emitter.emit('form-item-created', {
    validator: validateInput,
    clearInput,
    formName: inject('formName')
})
// 而规定的类型是
type Events = { 'form-item-created': ValidateFunc }
export const emitter = mitt<Events>()

// 这明显就是问题了 form-item-created 值需要一个函数类型
// 而我们现在除了这个函数,还传入了其他内容。所以我们要将它更新一下
// 新建一个 FormEvent,将我们需要的三个键都传进去
interface FormEvent  {
    validator: ValidateFunc;
    clearInput: ClearFunc;
    formName: any;
}
type Events = { 'form-item-created': FormEvent }
// 这样就对应上了,错误也就消失了

亲测可用~

0
1
Symbol王独秀
好的,谢谢老师
2022-02-09
共1条回复

张轩

2022-02-08

同学你好 看起来是类型不匹配 可否将对应的代码库(git)发给我,我在本地帮你调试一下,这样看的更加清楚,谢谢

0
1
Symbol王独秀
好的,谢谢老师,https://gitee.com/wanglipingvcu/vue3-zheye.git
2022-02-08
共1条回复

Vue3 + TS 仿知乎专栏企业级项目

带你完成前后端分离复杂项目,率先掌握 vue3 造轮子技能

3176 学习 · 2352 问题

查看课程