eri*_*ola 30 typescript angular
我在Angular2 Web应用程序上工作.我在typescript中创建了一个简单的类:
export class User {
firstName: string;
lastName: string;
nominative() : string {
return this.lastName + " " + this.firstName;
}
}
Run Code Online (Sandbox Code Playgroud)
当我调用nominative
类型User
I的对象时收到此错误:Error in :0:0 caused by: user.nominative is not a function
.
我在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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试过以这种方式使用lambda表达式:
nominative = () : string => { ... }
Run Code Online (Sandbox Code Playgroud)
但没有任何改变.问题只出在这堂课上,所以我做错了什么?
Gün*_*uer 26
as User
只告诉编译器可以安全地假设值是类型User
,但对运行时没有任何影响,并且它没有任何方法,因为方法不与JSON一起传递.
你需要
let user = new User(JSON.parse(sessionStorage.getItem("User")));
Run Code Online (Sandbox Code Playgroud)
获得一个实际的User
实例.您需要创建一个构造函数,将JSON中的值分配给字段
class User {
...
constructor(json:any) {
this.firstName = json.firstName;
this.lastName = json.lastName;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12360 次 |
最近记录: |