Error TS2554:预期传入2个参数却仅传1个,如何解决?
解决Error TS2554:参数数量不匹配问题
嘿,我一眼就看出问题所在啦!你遇到的TS2554错误,核心原因是Firebase的signInWithEmailAndPassword方法参数传错了。
问题分析
这个方法并不接受包含email和password的对象作为参数,它需要的是两个独立的字符串参数:第一个是邮箱地址,第二个是密码。你现在把它们打包成一个对象传进去,TypeScript自然会报错说预期2个参数但只收到1个。
修正后的代码
把第3行的方法调用改成下面这样就可以了:
login(myForm1) { if(myForm1.valid) { this.af.auth.signInWithEmailAndPassword(this.email, this.password) .then( (success)=>{ this.router.navigate(['/blog']); }).catch( (err)=>{ this.error=err; }) } }
关键改动说明
- 移除了包裹
email和password的对象语法{ email: ..., password: ... } - 直接把
this.email和this.password作为两个独立参数传入signInWithEmailAndPassword
这样调用就完全符合方法的参数要求了,TypeScript的错误也会消失,登录功能应该就能正常工作啦!
内容的提问来源于stack exchange,提问作者Mokabbir Ullah Faisal
相关产品推荐
相关产品推荐

