angular – typescript类中的方法给出错误“不是函数”
发布时间:2020-12-17 08:20:38 所属栏目:安全 来源:网络整理
导读:我在Angular2 Web应用程序上工作.我在typescript中创建了一个简单的类: export class User { firstName: string; lastName: string; nominative() : string { return this.lastName + " " + this.firstName; }} 当我在User类型的对象上调用nominative时,我
我在Angular2 Web应用程序上工作.我在typescript中创建了一个简单的类:
export class User { firstName: string; lastName: string; nominative() : string { return this.lastName + " " + this.firstName; } } 当我在User类型的对象上调用nominative时,我收到此错误:错误:0:0引起:user.nominative不是函数. 我在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; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |