参数 'xxxx' 隐式具有 'any' 类型

Paramater 'xxxx' implicitly has an 'any' type

我正在尝试使用接受用户信息的表单将多条记录写入本地存储。但是,我遇到了以下错误:

“参数 'user' 隐式具有 'any' 类型。”

我的代码如下:

addUserForm!: FormGroup;
user: any = {};

onSubmit(): void {
    console.log(this.addUserForm.value);
    this.user = Object.assign(this.user, this.addUserForm.value);
    this.user(this.user);
  }

  addUser(user) {
    let users = [];
    if (localStorage.getItem('Users')) {
      users = JSON.parse(localStorage.getItem('Users') || '{}');
      users = [user, ...users];
    } else {
      users = [user];
    }
    localStorage.setItem('Users', JSON.stringify(user));
  }

我尝试在 tsconfig.json 文件中将“noImplicityAny”设置为 false,但结果是我遇到了一个新错误:

“类型 'any' 不可分配给类型 'never'”,行:

users = [user, ...users];
    } else {
      users = [user];
    }

除了编辑 tsconfig 文件之外的任何建议,我们将不胜感激。

编辑:

我也试过这个:

addUser(user: any)

这清除了我阻止我使用 运行 应用程序的任何错误,但是,当我尝试将新用户添加到本地存储时,我的浏览器记录了以下错误:

ERROR TypeError: this.user is not a function

您可以尝试定义一个用户界面。像

interface User {
  name: string
  age: number
  ...
}

然后将您的用户对象设置为该类型,例如 user: User

只需使用户界面的形状与您希望从表单中获得的形状相同。

这个有用吗?

  addUserForm!: FormGroup;
  user: any = {};

  onSubmit(): void {
    console.log(this.addUserForm.value);
    this.user = Object.assign(this.user, this.addUserForm.value);
    this.addUser(this.user);
  }

  addUser(user: any) {
    let users = JSON.parse(localStorage.getItem('Users') || '[]');
    users = [user, ...users];
    localStorage.setItem('Users', JSON.stringify(users));
  }