typescript - Angular 类型错误:无法定义属性“userId”:对象不可扩展
好的,所以我刚刚把一个相当复杂的应用从 Angular 8 升级到 9(也升级到了 10,但这个错误是在 9 中出现的)
我们有一个函数,如下:
logUserActivity(request: UserActivityRequest): Observable<void> {
const url = `${this.baseUrl}/log-activity`;
request.userId = this.authenticationTokenService.userId();
request.organisationId = isAuthenticationActivity(request.activityType) ? null : this.authenticationTokenService.organisationId();
然而,自从升级后,我们现在得到的是:
ERROR TypeError: can't define property "userId": Object is not extensible
这个类看起来像:
export class UserActivityRequest {
userId: string;
activityType: UserActivityType;
organisationId: string;
moduleId: Modules;
dateCreated: Date;
constructor(
activityType: UserActivityType,
moduleId: Modules = null,
dateCreated: Date = null
) {
this.activityType = activityType;
this.moduleId = moduleId;
this.dateCreated = dateCreated;
}
}
如果我执行以下操作,错误就会消失:
request = {
...request,
userId: this.authenticationTokenService.userId(),
organisationId: isAuthenticationActivity(request.activityType) ? null : this.authenticationTokenService.organisationId()
}
但我想了解问题出在哪里,因为在其他地方看到的实例都没问题,所以很明显我对新的 Angular/TypeScript/Ngrx 版本有些地方不了解
提前感谢