Penso che gran parte della confusione su questo è dovuta a jQuery che non agisce proprio come un modulo esterno, che inibisce l'uso di un'istruzione import
. La soluzione è abbastanza pulita, semplice ed elegante da non sembrare un work-around.
Ho scritto un semplice esempio di Using RequireJS and jQuery in TypeScript, che funziona come segue ...
si afferra le definizioni del tipo da Definitely Typed per RequireJS e jQuery.
Ora è possibile utilizzare RequireJS non elaborato con la tipizzazione statica all'interno del file TypeScript.
app.ts
///<reference path="require.d.ts" />
///<reference path="jquery.d.ts" />
require(['jquery'], function ($) {
$(document).ready(() => {
alert('Your code executes after jQuery has been loaded.');
});
});
e quindi è solo bisogno di aggiungere il tag singolo script alla pagina:
<script data-main="app" src="require.js"></script>
vantaggi rispetto ad altre soluzioni?
- È possibile aggiornare jQuery e RequireJS indipendentemente
- Non dovete fare affidamento su progetto di spessore in fase di aggiornamento
- Lei non c'è bisogno di caricare manualmente jQuery (o qualsiasi altra cosa che non è "come un modulo" che si dispone di un file
.d.ts
per)
Questo non è per Main.ts o Main.js. Ho bisogno di un modulo (module.ts) per richiedere e caricare jquery e avere ancora Module.ts visto da Typescript come un modulo separato. La tua soluzione sembra funzionare per il mio punto di ingresso, ma ho bisogno di richiedere jquery nei moduli che non sono il punto di ingresso. –
È possibile applicare la stessa logica al resto del jquery-require-sample sulla pagina github: https://github.com/jrburke/require-jquery/tree/master/jquery-require-sample Basta cambiare il requisito dichiarazione e sei pronto per andare –
@ Murat - Si suppone che abbozzato Typ per essere in grado di generare le istruzioni require per te con le istruzioni del modulo. Mi sento sporco a fare questo :) –