【发布时间】:2021-07-20 06:33:27
【问题描述】:
我正在尝试使用接受用户信息的表单将多条记录写入本地存储。但是,我遇到以下错误:
“参数 '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
【问题讨论】:
-
你不想写
this.addUser(this.user);而不是this.user(this.user);吗? -
是的,我愿意 - 感谢您选择这个。
-
(这可以解释错误:
ERROR TypeError: this.user is not a function) -
@Pac0 我现在收到错误:“ERROR TypeError: users is not iterable”
-
@SeventhWarhawk :最后一个错误意味着您正在使用
user像一个数组,但事实并非如此。我的猜测是您在某处错误地使用了user而不是users(您的数组)。
标签: angular typescript local-storage