You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript登录验证函数报错Property 'email' does not exist on type '{}' 如何解决?

解决TypeScript登录验证函数的类型错误

在TypeScript中编写登录验证函数时,取消注释errors对象内的email: ''或password: ''行后,会触发TypeScript错误:Property 'email' does not exist on type '{}',同时email值会变为空字符串。

原代码如下:

export default function loginValidate(values: any) {
  let errors = {
    // email:'', //handling = Property 'email' does not exist on type '{}'
    // password: '', //handling = Property 'password' does not exist on type '{}'
  };


  if (!values.email) {
    errors.email = 'Email Required';
  } else if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(values.email)) {
    errors.email = 'Invalid email address';
  }

  //Validation for password
  if (!values.password) {
    errors.password = 'Password Required';
  } else if (values.password.length < 6 || values.password.length > 30) {
    errors.password = "Must be greater than 6 and less than 30 characters";
  } else if (values.password.includes(" ")) {
    errors.password = "Invalid Password";
  }

  return errors;
}

修复方法

将声明errors的代码从let errors = {}修改为let errors: any = {},即可移除该类型错误。

如果希望更符合TypeScript的类型规范,也可以定义明确的错误类型接口,避免使用any:

interface LoginErrors {
  email?: string;
  password?: string;
}

export default function loginValidate(values: any) {
  let errors: LoginErrors = {};
  // 后续验证逻辑保持不变
}

内容的提问来源于stack exchange,提问作者erwin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 18:05:29