Mat*_*lez 1 javascript typescript nativescript angular2-nativescript angular
我有一个可以在 Angular 2 中工作的代码,但是当我尝试在 NativeScript 项目中使用它时失败了。\nI\xc2\xb4m 试图拒绝这样的承诺:
\n\nlogin(credentials:Credentials):Promise<User> {\n if (!valid) {\n return Promise.reject<User>("Invalid password");\n }else {\n return Promise.resolve(new User("some user"));\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n我收到此错误:
\n\nError:(32, 22) TS2346: Supplied parameters do not match any signature of call target.\nRun Code Online (Sandbox Code Playgroud)\n
当你拒绝它时,你就错过了回报承诺。错误直接表明您没有Promise<User>从函数返回。由于方法返回类型是Promise<User>,它总是返回该对象。
PS:在OP中编辑后发现该方法可以返回两种类型的数据,成功时为Userobject,拒绝时为string. 因此,对于这种情况,我希望您将方法返回类型更改为User | string
代码
login(credentials:Credentials):Promise<User | string> {
if (!valid) {
//returned promise here which was missing and failing compilation
return Promise.reject("Invalid password");
}else {
return Promise.resolve(new User("some user"));
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
607 次 |
| 最近记录: |