gpt4 book ai didi

angular - typescript 类中的方法给出错误 "is not a function"

转载 作者:太空狗 更新时间:2023-10-29 16:50:16 24 4
gpt4 key购买 nike

我从事 Angular2 网络应用程序方面的工作。我用 typescript 创建了一个简单的类:

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

nominative() : string {
return this.lastName + " " + this.firstName;
}
}

当我在 User 类型的对象上调用 nominative 时,我收到此错误: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();
}
}
}

我已经尝试过以这种方式使用 lambda 表达式:

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

但没有任何改变。问题只在这个类中,所以我做错了什么?

最佳答案

as User 只是告诉编译器可以安全地假定该值属于 User 类型,但对运行时没有任何影响,也不会有任何方法,因为方法不通过 JSON 传递。

你需要

let user = new User(JSON.parse(sessionStorage.getItem("User")));

获取一个实际的 User 实例。您需要创建一个构造函数,将 JSON 中的值分配给类似

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

关于angular - typescript 类中的方法给出错误 "is not a function",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42899570/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com