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
}