javascript - שגיאת TypeScript לא ניתן לקרוא את התכונה 'REPOSITORY' של לא מוגדר
חדש ב-TypeScript (אבל לא בעיצוב מונחה עצמים) אני לא מבין מה קורה
קובץ application.ts
class
APPLICATION{
constructor(){
console.log("constructor APPLICATION")
this.database = new REPOSITORY
}
database: REPOSITORY
}
new APPLICATION
import { REPOSITORY } from "./repository"
קובץ repository.ts
export
class
REPOSITORY {
constructor() {
console.log("constructor de REPOSITORY")
}
}
ואני מקבל את השגיאה
this.database = new repository_1.REPOSITORY;
^
TypeError: לא ניתן לקרוא את התכונה 'REPOSITORY' של לא מוגדר ב- new APPLICATION (Z:\Documents\Phi\Developpement\TypeScript\test\application.js:6:41)
יש רעיון?
תשובה #1
אתה צודק בול! חשבתי שהקומפיילר עובד בשני מעברים ושסדר ההצהרות האלה לא הוכרז. מאחר שאני חושב שמנגנון היבוא/ייצוא הזה אמור להיות אוטומטי, הייתי מעדיף להסתיר אותו בסוף הקוד! חבל!
תודה
תשובה #2
הצהרת ה-import שלך עבור REPOSITORY מתרחשת אחרי ש-REPOSITORY משמש בקונסטרקטור של APPLICATION, מה שאומר שהיא טרם מוגדרת בקונסטרקטור (הקצאת המשתנה שנוצרת מהצהרת ה-import אינה מונפת). תצטרך לייבא לפני השימוש:
import { REPOSITORY } from "./repository"
class APPLICATION {
constructor(){
console.log("constructor APPLICATION")
this.database = new REPOSITORY();
}
database: REPOSITORY
}
