angular - 元素隐含地具有“任何”类型,因为类型的表达式......当使用需要类型字符串的函数时
问题描述
我正在做一个带有快速后端应用程序的 Angular。后端给了我这样的回应
控制台.log(res) -->
{
"ok": true,
"msg": "Login ok",
"auth": "xxxxxxxxxxxx"
}
现在我得到了回复,我正在尝试将其保存在 localStorage
localStorage.setItem('auth', res['auth']); //also tried res.get('auth');
但是 setItem 接收字符串作为第一个元素,接收字符串作为第二个元素,我不断收到以下错误:
元素隐含地具有“任何”类型,因为类型“auth”的表达式不能用于索引类型“Object”。
解决方案
您可以创建一个接口并将后端响应类型设置为它,如下所示:
export interface BackEndResponse{
ok: boolean;
message: string;
auth: string;
}
我不知道您是如何查询后端的,但这是一个订阅发出请求并将对象作为可观察对象返回的方法的示例,
setLocalStorage(): void {
this.yourBackEndService.getBackEndInfo().subscribe((backEndResponse) => {
localStorage.setItem('auth', backEndResponse.auth);
// ...
});
}
推荐阅读
- dart - 如何使用 dart 创建 ArrayAddition 函数
- flutter - _formKey.currentState.validate() 上的 Flutter/Dart Null 安全性?
- javascript - 类型错误:tf.shape 不是函数
- django - Django如何从QueryDict更新模型字段
- javascript - How to show filtered data in Javascript callback function react-calendar-month-view?
- javascript - Auth0: Is there a way to switch accounts?
- java - @Query JpaRepository, querying decimal(19,4) becomes null when mapped to DTO BigDecimal or Long
- reactjs - Unable to customize Bootstrap 5 theme colors
- javascript - Add object as value to to a parent object inside of an array
- varnish - Upgrading SLES 15.1 to 15.2 causing Varnish to Fail