Dattiloscritto: riferimento Resig Estendiamo

voti
2

Sto cercando di fare riferimento il codice esistente che utilizza Resig di 'estendere', ma mi sto un po 'di errori

------ 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/)

errori:

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

mi rendo conto che alla fine io avevo voglia di riscrivere il codice extend-based per tipografico, ma fino ad allora, come faccio riferimento a esso dal nuovo codice?

Credo che questo pone la domanda più profonda - perché è lamenta errori di tipo in codice javascript esistente?

È pubblicato 02/10/2012 alle 17:47
fonte dall'utente
In altre lingue...                            


1 risposte

voti
3

Dattiloscritto in genere non può dedurre i tipi di codice JavaScript esterno.

Avrete bisogno di dichiarare la forma del codice di 'estendere' si sta chiamando in modo che dattiloscritto sa quale sia la forma del tipo è:

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

È possibile che mettere in file sorgente direttamente (solo se si dispone di un progetto unico file), o più propriamente, in un file' .d.ts', che si fa riferimento dai file di origine.

Risposto il 02/10/2012 a 18:23
fonte dall'utente

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