Creo que gran parte de la confusión se debe a que jQuery no actúa realmente como un módulo externo, lo que inhibe el uso de una declaración import
. La solución es bastante limpia, simple y elegante para no tener ganas de trabajar.
He escrito un ejemplo sencillo de Using RequireJS and jQuery in TypeScript, que funciona de la siguiente manera ...
que agarrar las definiciones de tipo de Definitely Typed para RequireJS y jQuery.
Ahora puede usar RequireJS sin procesar con mecanografía estática dentro del archivo de 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.');
});
});
y luego sólo tiene que añadir la etiqueta script sola a su página:
<script data-main="app" src="require.js"></script>
Beneficios sobre otras soluciones?
- Puede actualizar jQuery y RequireJS independientemente
- Usted no tiene que depender de proyecto de cuña que se actualiza
- Usted no tiene que cargar manualmente jQuery (o cualquier otra cosa que no es "como un módulo" que tiene un archivo de
.d.ts
)
Esto no es para Main.ts o Main.js. Necesito un módulo (module.ts) para requerir y cargar jquery y todavía tenga Module.ts visto por Typescript como un módulo separado. Su solución parece que funcionaría para mi punto de entrada, pero necesito requerir jquery en módulos que no son el punto de entrada. –
Puede aplicar la misma lógica al resto de jquery-require-sample en la página de github: https://github.com/jrburke/require-jquery/tree/master/jquery-require-sample Simplemente cambie el requerimiento declaración y está listo para ir –
@Murat - Se supone que Typescript debe ser capaz de generar las declaraciones requeridas para usted con instrucciones de módulo. Me siento sucio haciendo esto :) –