TS下,form表单验证validate报错

3,750 阅读1分钟

validate报错

Property 'validate' does not exist on type 'Vue | Element | Vue[] | Element[]'.
  Property 'validate' does not exist on type 'Vue'.
any

原因:

validate找不到类型,此时可以使用类型断言,将 validate 断言成: HTMLFormElement

类型断言的用法如上,在需要断言的变量前加上 即可。 类型断言不是类型转换

解决方法:

    1)、类型断言 (this.$refs[formName] as HTMLFormElement).validate();
    2)、定义一个变量等价FormData:
        export default class AccountEdit extends Vue {
            FormData: any
            submitForm(formName: string) {
                this.FormData = this.$refs[formName]
                this.FormData.validate((valid: any) => {})
            }
        }