2012-10-06 7 views
20

Ich habe versucht, dieses neue 'TypeScript' Zeug kennenzulernen, und bin etwas neugierig auf etwas.Kann TypeScript mit jQuery ohne Definitionsdatei interagieren?

Kann es immer noch mit vorhandenen Javascript-Frameworks wie jQuery ohne die Notwendigkeit für eine Definitionsdatei mit all diesen Schnittstellen funktionieren? Ich habe versucht, dies manuell zu testen, aber bisher bin ich ein wenig unsicher, wie weit die Funktionalität reicht.

Update

von 'Arbeit' Ich beziehe mich auf einfache Funktionalität, nicht IDE-Funktionen wie Auto-Vervollständigung.

Antwort

33

Die einfache Antwort ist ja.

TypeScript kann vollständig mit beliebigen vorhandenen Javascript-Bibliothek interagieren. Sie benötigen die Definitionsdatei nur, wenn Sie möchten, dass Werkzeuge in der IDE einfacher zu verwenden sind.

Auch wenn Sie die Definitionsdatei nicht einschließen, könnte der TypeScript-Compiler auf Sie wütend sein, wenn Sie eine Variable verwenden, die nicht in Ihrem Code definiert wurde (wie $). Um das zu umgehen, dass Sie vielleicht so etwas wie

declare var $; 

zu tun haben Das heißt, ich bin nicht sicher, warum Sie nicht wollen die jQuery-Definitionsdatei verwenden. Es macht es sicherlich viel angenehmer jQuery mit zu schreiben.

+0

Die kurze Antwort ist, weil meine Kenntnisse von Javascript noch nicht zu einem Punkt entwickelt worden sind, an dem ich in der Lage bin, schnell meine eigenen Definitionsdateien zu schreiben. Wenn ich mehr Erfahrung habe, werde ich wahrscheinlich dazu in der Lage sein. – Ciel

+0

@Ciel Wenn noch niemand eine Definitionsdatei geschrieben hat, kann ich verstehen, warum Sie das nicht selbst machen wollen. Aber die jQuery existiert bereits, Sie können [hier von hier kopieren] (http://typescript.codeplex.com/SourceControl/changeset/view/fe3bc0bfce1f#samples%2fjquery%2fjquery.d.ts). –

+0

Es ist auch erwähnenswert, dass, wenn etwas fehlt aus der jQuery-Definitionsdatei, die mit TypeScript ausgeliefert wird, Sie es möglicherweise selbst hinzufügen müssen. Sie können entweder die gelieferte Datei jquery.d.ts kopieren und diese ändern oder Ihre Erweiterungen über eine separate Datei ext.d.ts hinzufügen. Siehe meine Antwort zu [Hinzufügen von jQuery-Plugins zu TypeScript] (http://stackoverflow.com/questions/12719529/using-jquery-plugin-intypescript/12722003#12722003) für Informationen dazu. –

7

Ja, Sie können. Zum Beispiel schreibe einfach:

declare var $; 

und Sie können grundsätzlich das JQuery-Framework verwenden, ohne etwas anderes definieren zu müssen. Dies ist auch sehr praktisch, wenn Sie Ihre vorhandenen Bibliotheken/Portierungscodes konvertieren.

3

Typoskript ermöglicht die Deklaration von Variablen im gewünschten Bereich mit der Syntax declare variable oder declare function (siehe Abschnitt 1.1 auf Seite 9 in der Sprachspezifikation). Die Verwendung von Ambient-Deklarationen kann jedoch nur eine kurzfristige Lösung sein, da Sie effektiv die gesamte Typoskript-Überprüfung und damit einen der wichtigsten Vorteile von Typescript gegenüber Javascript verlieren.

Verwandte Themen