我的Vue组件中包含以下代码:
import Vue from 'vue';
import { ElForm } from 'element-ui/types/form';
type Validator = (
this: typeof PasswordReset,
rule: any,
value: any,
callback: (error?: Error) => void
) => void;
const validatePass1: Validator = (rule, value, callback) => {
if (value && this.form.passwordConfirm) {
(this.$refs.form as ElForm).validateField('passwordConfirm', valid => {});
}
};
// ...
const PasswordReset = Vue.extend({
// ...
这无法按照记录进行。我在validatePass1
函数中遇到类型错误:
'this' implicitly has type 'any' because it does not have a type annotation.
我不明白为什么这不起作用。
答案 0 :(得分:1)
validatePass1
需要用function
关键字定义,而不是用箭头功能定义。箭头函数会忽略调用时传递的this
(这是您的类型注释所在的位置),并且始终使用其定义位置的this
,在这种情况下为全局对象(我认为)。