我在我的项目中使用TypeScript,我无法将属性分配给任何东西。我试图从服务中获取一些数据并将其分配给使用构造函数声明的私有对象。但是,我一直得到同样的错误:TypeError:无法在[some data here]上创建属性[some property]。 这是我的代码:
module MyModule.Controllers {
"use strict";
export interface ICurrentUser {
DisplayName: string;
Features: string[];
}
export class DashboardController {
authenticationService = new Services.AuthenticationService(this.$http);
static $inject = ["$http"];
constructor(private $http: ng.IHttpService, private currentUser: ICurrentUser, private currentUserFeatures: string[])
{
this.getCurrentUser();
this.getUserGroupForCurrentUser();
return;
}
getUserGroupForCurrentUser = () => {
this.authenticationService.getUserGroupForCurrentUser().then((authenticationId) => {
this.currentUser.Features = authenticationFeatures;
});
}
getCurrentUser = () => {
this.authenticationService.getCurrentUser().then((user) => {
this.currentUser.DisplayName = userName;
});
}
}
}
答案 0 :(得分:1)
无法在字符串'John Doe'上创建属性'DisplayName' -
这是以下代码:
this.currentUser.DisplayName = userName;
似乎在运行时this.currentUser
实际上是字符串 John Doe
。这表明类型声明(它们有效地提示编译器关于不在其控制中的外部系统)与运行时的实际外部系统不匹配。