类型的参数不能分配给'ArrayLike <{}>'的参数类型

时间:2019-02-26 12:38:51

标签: angular typescript rxjs testbed

尝试编写单元测试时,Visual Studio代码出现以下错误。

  

类型'{id:string; lastName:字符串; firstName:字符串;密码:字符串; passwordInHistory:布尔值; }”不能分配给“ ArrayLike <{}>”类型的参数。         对象文字只能指定已知属性,并且'id'在类型'ArrayLike <{}>'

中不存在

这部分代码导致错误

spyOn(usersService, 'getUserPasswordHistory').and.returnValue(Observable.from({ id: "id", lastName: "prasanth", firstName: "mp", password: "bingo!!!", passwordInHistory: true }));

以下是在UserService类中声明的函数getUserPasswordHistory

@Injectable()
export class UsersService {

  getUserPasswordHistory(resetKey: string, newPassword: string) {
    return this.http.get<PasswordResetHistoryStatus>(
      `${
        this.config.api
      }/users/password-in-history/reset-key/${resetKey}/password/${newPassword}`
    );
  }

}

我尝试使用observable.create

Observable.create({ id: "id", lastName: "prasanth", firstName: "mp", password: "bingo!!!", passwordInHistory: true }) 

而不是可观察的。

但是现在我得到了错误

  

期望的Observable({_isScalar:false,来源:Observable({_isScalar:false,_subscribe:Object({id:'id',lastName:'prasanth',firstName:'mp',密码:'bingo !!! ',passwordInHistory:true})}),运算符:MapOperator({project:Function,thisArg:undefined})})为空。

0 个答案:

没有答案