Γραφομηχανή: αναφορά Resig εκτείνονται

ψήφοι
2

Προσπαθώ να αναφέρετε υπάρχοντα κώδικα που χρησιμοποιεί Resig του «επεκταθεί», αλλά παίρνω ένα σωρό λάθη

------ test.ts --------

/// <reference path=myclass.js />
var m = new MyClass (3);

------ myclass.js --------

/// <reference path=class.js />

var MyClass = Class.extend({

    init: function (i)
    {
        this.i = i;
    },
})

------ class.js --------

(copied from http://ejohn.org/blog/simple-javascript-inheritance/)

σφάλματα:

Supplied parameters do not match any signature of call target
The name 'Class' does not exist in the current scope
The property 'extend' does not exist on value of type '() => void'
The name 'Class' does not exist in the current scope

Αντιλαμβάνομαι ότι τελικά θα ήθελα να ξαναγράψουμε τον κωδικό επεκτείνει βασίζονται στην γραφομηχανή, αλλά μέχρι τότε, πώς μπορώ να την αναφορά από το νέο κώδικα;

Υποθέτω ότι αυτό θέτει το βαθύτερο ερώτημα - γιατί είναι διαμαρτύρονται για σφάλματα τύπου σε υπάρχοντα κώδικα javascript;

Δημοσιεύθηκε 02/10/2012 στις 17:47
πηγή χρήστη
Σε άλλες γλώσσες...                            


1 απαντήσεις

ψήφοι
3

Γραφομηχανή γενικά δεν μπορεί να συναγάγει τα είδη από εξωτερικές κώδικα JavaScript.

Θα πρέπει να δηλώσουν το σχήμα του κώδικα «επεκτείνει» που καλείτε σε έτσι ώστε γραφομηχανή ξέρει ποια είναι η μορφή του τύπου είναι:

declare class Class {
    static extend(body: any);
}

Μπορείτε είτε να βάλετε ότι στο αρχείο προέλευσης άμεσα (αν έχετε μόνο ένα έργο ενός αρχείου), ή πιο σωστά, σε ένα αρχείο».d.ts', η οποία αναφέρεστε από τα αρχεία προέλευσης.

Απαντήθηκε 02/10/2012 στις 18:23
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more