Angular typescript类中的方法给出错误“;不是一个函数;

Angular typescript类中的方法给出错误“;不是一个函数;,angular,typescript,Angular,Typescript,我在Angular2 web应用程序上工作。我用typescript创建了一个简单的类: export class User { firstName: string; lastName: string; nominative() : string { return this.lastName + " " + this.firstName; } } 当我对类型为User的对象调用namignative时,我收到以下错误:由:User.namign

我在Angular2 web应用程序上工作。我用typescript创建了一个简单的类:

export class User {
    firstName: string;
    lastName: string;

    nominative() : string {
        return this.lastName + " " + this.firstName;
    }
}
当我对类型为
User
的对象调用
namignative
时,我收到以下错误:
由:User.namignative不是函数引起的:0:0中的错误

我在我的
AppComponent
类中调用函数:

export class AppComponent implements OnInit {
    name: string = "";

    ngOnInit() : void {
        let user = JSON.parse(sessionStorage.getItem("User")) as User;
        if (user) {
            this.name = user.nominative();
        }
    }
}
我已经尝试以这种方式使用lambda表达式:

nominative = () : string => { ... }

但一切都没有改变。问题只存在于这个类中,那么我做错了什么呢?

,因为User
只告诉编译器,可以安全地假设值的类型是
User
,但对运行时没有任何影响,也不会有任何方法,因为方法不是用JSON传递的

你需要

let user = new User(JSON.parse(sessionStorage.getItem("User")));
获取实际的
用户
实例。您需要创建一个构造函数,将JSON中的值分配给如下字段

class User {
  ...
  constructor(json:any) {
    this.firstName = json.firstName;
    this.lastName = json.lastName;
  }

另一个选项是执行
Object.assign(new User(),JSON.parse(sessionStorage.getItem(“User”))
我有完全相同的错误,但我没有读取JSON。我的构造函数是空的。
classa(){doThing():void{…}当我调用
A时,导出默认的新A
。doThings()
我得到的
doThings不是一个函数
。我不太喜欢类型脚本:D我会尝试在
默认值之间删除
new
。。。A
或在
末尾添加
()
。。。导出默认的新A()