Typoskript: Referenzierung Resig erweitern

stimmen
2

Ich versuche, vorhandenen Code zu verweisen, die Resig verwendet ‚verlängern‘, aber ich bin ein paar Fehler bekommen

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

Fehler:

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

Ich weiß, dass irgendwann würde ich will den extend-basierten Code zu Typoskript neu zu schreiben, aber bis dahin, wie ich es tat Referenz von neuem Code?

Ich denke, das die tiefere Frage aufwirft - warum ist es in bestehenden JavaScript-Code über Art Fehler beschweren?

Veröffentlicht am 02/10/2012 um 17:47
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
3

Typoskript kann in der Regel nicht Typen von externem JavaScript-Code schließen.

Sie müssen die Form des ‚verlängern‘ Code erklären, die Sie in so dass Typoskript sind nennen weiß, was die Form des Typ ist:

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

Sie können entweder direkt in der Quelldatei setzen, dass (wenn Sie nur ein einzigen Datei-Projekt), oder genauer, in einer‘.d.ts' Datei, die Sie aus Ihren Quelldateien verweisen.

Beantwortet am 02/10/2012 um 18:23
quelle vom benutzer

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