2012-10-06 21 views
20

He estado intentando conocer este nuevo material de 'TypeScript', y tengo curiosidad por algo.¿Puede TypeScript interactuar con jQuery sin un archivo de definición?

¿Puede funcionar con frameworks javascript existentes como jQuery sin la necesidad de un archivo de definición con todas esas interfaces? He intentado probar esto de forma manual, pero hasta ahora estoy un poco inseguro de cuán lejos se extiende la funcionalidad.

actualización

por 'trabajo' me refiero a una funcionalidad simple, no características IDE como auto-completado.

Respuesta

33

La respuesta simple es .

TypeScript puede interactuar completamente con any biblioteca Javascript existente. Solo necesita el archivo de definición si desea herramientas en el IDE para que sea más fácil de usar.

Además, si no incluye el archivo de definición, el compilador de TypeScript podría enojarse con usted por utilizar una variable que no se ha definido en su código (como $). Para conseguir alrededor de eso puede que tenga que hacer algo como

declare var $; 

Dicho esto, no estoy seguro de por qué no se desea utilizar el archivo de definición de jQuery. Seguramente hace mucho más agradable escribir jQuery.

+0

La respuesta corta es porque mi conocimiento de javascript no ha evolucionado hasta el punto en que soy capaz de escribir rápidamente mis propios archivos de definición. A medida que tenga más experiencia, probablemente será capaz de hacer eso más. – Ciel

+0

@Ciel Si nadie ha escrito un archivo de definición, seguro, puedo entender por qué no querría hacerlo usted mismo. Pero el jQuery ya existe, puede [copiarlo desde aquí] (http://typescript.codeplex.com/SourceControl/changeset/view/fe3bc0bfce1f#samples%2fjquery%2fjquery.d.ts). –

+0

También vale la pena señalar que si falta algo en el archivo de definición de jQuery que se incluye con TypeScript, es posible que deba agregarlo usted mismo. Puede copiar el archivo jquery.d.ts enviado y modificarlo o agregar sus extensiones a través de un archivo ext.d.ts separado. Consulte mi respuesta sobre [agregar jQuery plugins a TypeScript] (http://stackoverflow.com/questions/12719529/using-jquery-plugin-in-typescript/12722003#12722003) para obtener información sobre cómo hacerlo. –

7

Sí, puedes. Por ejemplo acaba de escribir:

declare var $; 

y, básicamente, se puede utilizar el framework jQuery sin tener que definir cualquier otra cosa. Esto también es muy útil cuando está convirtiendo sus bibliotecas existentes/código de transferencia.

3

Typescript le permite declarar variables en el ámbito desclasificado utilizando la sintaxis declare variable o declare function (consulte la Sección 1.1 en la página 9 en la especificación del idioma). Sin embargo, el uso de declaraciones ambientales solo puede ser una solución a corto plazo, ya que perderá efectivamente toda la comprobación de tipos estáticos de Typescript y, por lo tanto, una de las ventajas más importantes de Typescript frente a Javascript.

Cuestiones relacionadas