angular - 错误 TS2571:对象的类型为“未知”
问题描述
Auth-service.ts 正如您在登录和注册方法中看到的那样,我正在尝试存储经过身份验证的用户数据。我收到一个错误~~~(对象是未知类型)
signUp(email:any, password:any){
return this._http.post<AuthResponse>('https://identitytoolkit.googleapis.com/v1/accounts:signUp?key='+ config.API_KEY, {
email: email,
password: password,
returnSecureToken: true
}).pipe(
catchError(err =>{
return err;
}),tap(res => {
this.authenticatedUser(res.email, res.localId, res.idToken , +res.expiresIn)
})
)
}
signIn(email:any, password:any){
return this._http.post<AuthResponse>('https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key='+ config.API_KEY, {
email: email,
password: password,
returnSecureToken: true
}).pipe(
catchError(err =>{
return err;
}),tap(res =>{
this.authenticatedUser(res.email, res.localId, res.idToken , +res.expiresIn)
~~~ ~~~ ~~~ ~~~(object is type of unknown)
})
)
}
如您所见, AuthResponse-interface 我创建了一个响应类型的接口...我正在使用 firebase api
export interface AuthResponse {
idToken: string,
email: string,
refreshToken: string,
expiresIn: string,
localId: string,
registered? : string
}
解决方案
您似乎没有在tap
运算符中定义参数的类型。
signIn(email:any, password:any){
return this._http.post<AuthResponse>('https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key='+ config.API_KEY, {
email: email,
password: password,
returnSecureToken: true
}).pipe(
catchError(err =>{
return err;
}),
tap((res: AuthResponse) => { // <-- define type here
this.authenticatedUser(res.email, res.localId, res.idToken , +res.expiresIn)
})
);
}
或者您也可以使用括号表示法而不是点表示法。
signIn(email:any, password:any){
return this._http.post<AuthResponse>('https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key='+ config.API_KEY, {
email: email,
password: password,
returnSecureToken: true
}).pipe(
catchError(err =>{
return err;
}),
tap((res: any) => {
this.authenticatedUser(res['email'], res['localId'], res['idToken'], +res['expiresIn'])
})
);
}
但是由于您已经定义了类型,我建议您使用它而不是any
.
推荐阅读
- react-native - 带有本机反应的过滤器按钮
- php - 无法在 php 中连接到 mysql 8
- cypress - 赛普拉斯如何选择包含文本的选项
- php - 使用 codeigniter 的简单示例 php 无法访问错误消息
- sql - 在 SQL Server 中的组内传输特定信息
- node.js - 无法在 Ubuntu 上启动 Angular 6 应用程序 - 详细堆栈退出状态 137
- owl - 如何在 Protégé 中输入电子邮件地址作为对象?
- mongodb - 如何使用 Talend OS for Big Data 将参数从 tMongoDBInput 传递到 tRestClient
- android - Android App Bundle 会自动从下载的 APK 加载类吗?
- arrays - numpy astype 对象到 int 的转换而不引发错误 python 2