请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

引用子组件方法的问题

如果想引用子组件的方法,使用ref过程中由于HTMLElement不存在子组件方法会飘红,正常做法是使用interface拓展?

const form = ref<null | HTMLElement>(null)

const submitForm = (event: boolean) => {
   if (!event) {
	  // 飘红 HTMLELement不存在该方法
      form.value && form.value.formClear()
   }
 }

正在回答

2回答

    interface IFormElement {
      formClear: Function;
    }
    const form = ref<null | IFormElement>(null);
    const submitForm = (event: boolean) => {
      if (!event) {        
        form.value && form.value.formClear();
      }
    };


0 回复 有任何疑惑可以回复我~
  • 提问者 linkscope #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2020-09-30 09:20:21
晨曦的希望 2020-09-28 15:02:58

只能使用interface吧,或者你不嫌弃的话给他个any类型

0 回复 有任何疑惑可以回复我~
  • 提问者 linkscope #1
    但是如何拓展呢
    const form = ref<null | Element extends IFormElement>(null)
    这种泛型拓展eslint会报错 Parsing error: '?' expected
    回复 有任何疑惑可以回复我~ 2020-09-28 16:48:52
  • 晨曦的希望 回复 提问者 linkscope #2
    用接口定义子组件有这个方法就行,没必须继承吧,这个eslint报错应该可以配置
    回复 有任何疑惑可以回复我~ 2020-09-28 19:25:05
  • 晨曦的希望 回复 提问者 linkscope #3
    或者这样写:
    interface IFormElement extends Element {
          formClear: Function;
    }
    回复 有任何疑惑可以回复我~ 2020-09-28 19:28:45
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信