Wenn ich eine TypeScript-Deklarationsdatei (zB jquery.d.ts) mit der /// <reference path="..."/>
-Syntax referenziere, muss ich sicherstellen, dass ich die entsprechende Bibliothek auf andere Weise lade, dh nur auf die .d-Datei referenziere. ts-Datei lädt die Bibliothek nicht.
Gibt es eine Möglichkeit, TypeScript zu veranlassen, einen require()
-Aufruf für die Bibliothek zu generieren, wenn ich sie verwende? Wenn ich nicht AMD / requirys benutzen würde, könnte ich einfach require
manuell aufrufen, aber ich würde gerne mit AMD arbeiten.
Der Vorteil ist, dass meine Abhängigkeiten nicht an zwei Stellen definiert sind. Die Referenzierung der Bibliothek aus einer .ts-Datei würde ausreichen, um sicherzustellen, dass sie geladen wird, anstatt die Liste der Abhängigkeiten manuell in meinem HTML-Code zu verwalten.
Update : Ich habe ein new geöffnet Frage , die meine genaue Situation verdeutlicht. Ich möchte die Antwort auf meine ursprüngliche Frage anerkennen, da ich nicht alle notwendigen Details angegeben habe.
Ja, TypeScript unterstützt "externe" Module, bei denen es sich im Grunde um erstklassige AMD- oder CommonJS-Module handelt. Zum Beispiel:
MyLib.ts
%Vor%MyProj.ts
%Vor%Kompilieren Sie dies mit "--module amd", und Sie erhalten das richtige Modul und benötigen die für Sie generierte Syntax.
Ich schrieb etwas dazu in meinem Blog. Sie können auch ein Beispiel auf GitHub finden.
Die Lösung ist ziemlich lang zu erklären, aber im Grunde verwende ich Shims mit Require.JS, um einen Modulnamen zu definieren, der die Javascript-Bibliothek repräsentiert, die ich laden möchte. Ich erstelle dann eine TypeScript-Datei mit dem gleichen Namen, damit der TypeScript-Compiler Javascript-Code generiert, der die gewünschte JS-Bibliothek verwenden kann. Macht eigentlich keinen Sinn, aber lies bitte den Post und ich denke, es wird mehr Sinn ergeben.
Tags und Links javascript typescript js-amd
Angenommen, Sie beziehen sich auf jQuery-Funktionen, ja, die beiden Codefragmente sind identisch.
Sie sollten die Funktion %code% entweder verwenden, wenn Sie mit dem Index arbeiten möchten, oder um eine lange Funktionskette zu verhindern.
Ihr Verständnis von %code% gilt für jQuery-Methoden. Aber seien Sie gewarnt, einige Plugins können den Selektor auf andere Weise behandeln oder nur das erste passende Element zum Beispiel beeinflussen.
Machen diese zwei Code-Schnipsel identische Dinge? Wenn ja, wann sollte man gegenüber dem anderen verwendet werden? (Außerdem, wenn Sie etwas mit %code% oder %code% machen müssen)
%Vor%gegen
%Vor%Im Allgemeinen kann angenommen werden, dass %code% "run %code% on jedes -Element bedeutet, das mit dem Selektor übereinstimmt, außer wenn der Name der Methode %code% ? dh jedes ist ein Sonderfall)
Ja, die meisten jQuery-Funktionen sind so gestaltet.
Sehen Sie sich das Codebeispiel an:
%Vor%Damit du auch %code% wieder verwenden kannst, solltest du einfach:
verwenden%code%
nicht
%Vor%