[英]Typescript X is not a function
我的代碼有問題。 編譯代碼時沒有錯誤,但是出現控制台錯誤:this.trackArray [0] .points.getVector()不是函數。
這是我調用此函數的代碼
const vecteurPoints: THREE.Vector3[] = this.trackArray[0].points.getVector();
這是功能
public getVector(): Vector3[] {
const vecArray: Vector3[] = new Array();
for (const i of this.coordX) {
vecArray[i].x = this.coordX[i];
vecArray[i].y = this.coordY[i];
vecArray[i].z = this.coordZ[i];
}
return vecArray;
}
在VS Code中,當我按住Ctrl鍵並單擊函數時,它會將我發送到函數定義。
我通過調用API獲得trackArray。
export class AdminService {
public constructor( private http: HttpClient ) { }
public getTracks(): Observable<Track[]> {
return this.http.get<Track[]>(this.ADMIN_URL).pipe(catchError(this.handleError<Track[]>("getTracks"))
);
}
我這樣稱呼這個班
this.admin.getTracks().subscribe((track: Track[]) => {this.trackArray = track; });
我發現了我的問題! 因為我獲得了帶有JSON的trackArray,所以我不得不實例化一個新軌道來應用我的方法! 謝謝大家的幫助
如果this.trackArray
不包含元素,則可能會發生這種情況。 添加空支票
if(this.trackArray && this.trackArray[0]){
const vecteurPoints: THREE.Vector3[] = this.trackArray[0].points.getVector();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.