스크립트 클래스의 메서드에서 "함수가 아닙니다" 오류가 발생했습니다.
저는 Angular2 웹 어플리케이션 작업을 하고 있습니다.타이프스크립트로 간단한 클래스를 만들었습니다.
export class User {
firstName: string;
lastName: string;
nominative() : string {
return this.lastName + " " + this.firstName;
}
}
내가 부를때nominative
활자로User
다음 오류가 발생합니다.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();
}
}
}
이미 람다 표현식을 다음과 같이 사용하려고 했습니다.
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;
}
이 비디오는 그것을 꽤 잘 설명해 줍니다.클래스를 호출하기 전에 클래스의 메서드가 존재하는지 확인해야 합니다.프로그램 전체에 메소드가 포함된 수업 사례가 있는데도 왜 한 페이지에서 이런 일이 발생했는지 아직 정확히 모르겠지만 효과가 있었습니다.https://www.youtube.com/watch?v=SdAt1qbWB-o/
if(this.searchResult.clearResults){
this.searchResult.clearResults()
}
언급URL : https://stackoverflow.com/questions/42899570/method-in-typescript-class-give-error-is-not-a-function
'programing' 카테고리의 다른 글
정방향 클래스 개체에서 속성을 찾을 수 없습니다. (0) | 2023.10.19 |
---|---|
Spring MVC에 필요한 String 매개 변수가 없습니다. (0) | 2023.10.19 |
내 /wp-content/Uploads 폴더에 'cache' 폴더가 있는 이유는 무엇입니까? (0) | 2023.10.19 |
JDBC 준비 상태에 매개 변수 전달 (0) | 2023.10.19 |
부모가 소유한 루트의 백분율 계산 (0) | 2023.10.19 |