typescript

Cómo usar jQuery con TypeScript



import jquery typescript (9)

estoy intentando

$(function(){ alert(''Hello''); });

Muestra este error en Visual Studio: (TS) Cannot find name ''$''. . ¿Cómo puedo usar jQuery con TypeScript?


Aquí están mis pasos de configuración de TypeScript y jQuery.

Hace que el soporte de tipos de jQuery funcione mejor que la mayoría de los artículos en Internet . ( Yo creo. )

primero:

$(document).ready(function () { $(''btn'').click(function () { alert(''I am clicked !'') } }




segundo (muy muy muy importante!!):

export var jQuery: any = window["jQuery"];




entonces, puedes disfrutarlo:

npm install --save-dev @types/query and the use it with: let $: JQueryStatic = (window as any)["jQuery"];




¡Es suave como la seda!


Creo que puede necesitar los tipos de letra mecanografiada para JQuery. Como dijiste que estás usando Visual Studio, puedes usar Nuget para obtenerlos.

https://www.nuget.org/packages/jquery.TypeScript.DefinitelyTyped/

El comando en Nuget Package Manager Console es

Install-Package jquery.TypeScript.DefinitelyTyped

Actualización: como se señaló en el comentario, este paquete no se ha actualizado desde 2016. Pero aún puede visitar su página de Github en https://github.com/DefinitelyTyped/DefinitelyTyped y descargar los tipos. Navegue por la carpeta de su biblioteca y luego descargue el archivo index.d.ts allí. Pop en cualquier lugar de su directorio de proyecto y VS debería usarlo de inmediato.


Debe declarar jquery / $ en su componente, si tsLint está activado para este tipo de comprobaciones de tipo.

Por ej.

declare var jquery: any; declare var $: any;

Esto también funciona muy bien con otras bibliotecas de terceros, si tienen sus tipings instalados.


En mi caso tuve que hacer esto

npm install @types/jquery --save-dev // install jquery type as dev dependency so TS can compile properly npm install jquery --save // save jquery as a dependency

Luego, en el archivo de script A.ts

import * as $ from "jquery"; ... jquery code ...


Esto funciona para mi:

import jquery = require("jquery"); // this helps TypeScript to understand jQuery best !!! otherwise It will confused . const $: JQueryStatic = jquery;


Lo más probable es que necesite descargar e incluir el archivo de declaración TypeScript para jQuery, jquery.d.ts en su proyecto.

Opción 1: instale el paquete @types (recomendado para TS 2.0+)

En la misma carpeta que su archivo package.json , ejecute el siguiente comando:

npm install --save-dev @types/jquery

Luego, el compilador resolverá las definiciones de jquery automáticamente.

Opción 2: descargar manualmente (no recomendado)

Descárgalo here .

Opción 3: Uso de tipings (Pre TS 2.0)

Si usa typings , puede incluirlo de esta manera:

// 1. Install typings npm install typings -g // 2. Download jquery.d.ts (run this command in the root dir of your project) typings install dt~jquery --global --save

Después de configurar el archivo de definición, importe el alias ( $ ) en el archivo TypeScript deseado para usarlo como lo haría normalmente.

import $ from "jquery"; // or import $ = require("jquery");

Es posible que necesite compilar con --allowSyntheticDefaultImports —add "allowSyntheticDefaultImports": true en tsconfig.json .

Instalar también el paquete?

Si no tiene jquery instalado, probablemente quiera instalarlo como una dependencia a través de npm (pero este no es siempre el caso):

npm install --save jquery


PARA el código de Visual Studio

Lo que funciona para mí es asegurarme de que cargue la biblioteca JQuery estándar a través de una etiqueta <script> en index.html.

correr

npm install --save @types/jquery

Ahora las funciones JQuery $ están disponibles en todos los archivos .ts, sin necesidad de ninguna otra importación.


Para angular CLI V7

npm install jquery --save npm install @types/jquery --save

Asegúrese de que jquery tenga una entrada en angular.json -> scripts

... "scripts": [ "node_modules/jquery/dist/jquery.min.js" ] ...

Vaya a tsconfig.app.json y agregue una entrada en "tipos"

{ "extends": "../tsconfig.json", "compilerOptions": { "outDir": "../out-tsc/app", "types": ["jquery","bootstrap","signalr"] }, "exclude": [ "test.ts", "**/*.spec.ts" ] }


Si desea usar jquery en una aplicación web (por ejemplo, React) y jquery ya está cargado con <script src="jquery-3.3.1.js"...

En la página web puedes hacer:

npm install jquery --save npm install @types/jquery --save-dev

entonces, no necesita cargar jquery por segunda vez (con npm install --save jquery ) pero tiene todas las ventajas de Typecript