estoy intentando
$(function(){
alert('Hello');
});
Su mostrando este error en Visual Studio: (TS) Cannot find name '$'.
. ¿Cómo puedo usar jQuery con TypeScript?
typescript
JavaScript Linq
fuente
fuente
import * as $ from "jquery";
Respuestas:
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:
Luego, el compilador resolverá las definiciones de jquery automáticamente.
Opción 2: descargar manualmente (no recomendado)
Descárgalo aquí .
Opción 3: Uso de tipings (Pre TS 2.0)
Si usa tipings , puede incluirlo de esta manera:
Después de configurar el archivo de definición, importe el alias (
$
) en el archivo TypeScript deseado para usarlo como lo haría normalmente.Puede que necesite compilar con
--allowSyntheticDefaultImports
—add"allowSyntheticDefaultImports": true
en tsconfig.json .Instalar también el paquete?
Si no tiene jquery instalado, probablemente desee instalarlo como una dependencia a través de npm (pero este no es siempre el caso):
fuente
import * as $ from 'jquery'
Error TS1192 Module '"jquery"' has no default export.
En mi caso tuve que hacer esto
Luego en el archivo de script
A.ts
fuente
PARA el código de Visual Studio
Lo que funciona para mí es asegurarme de hacer la carga estándar de la biblioteca JQuery a través de una etiqueta <script> en el index.html.
correr
Ahora las funciones JQuery $ están disponibles en todos los archivos .ts, sin necesidad de ninguna otra importación.
fuente
javascript declare var jquery: any; declare var $: any;
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
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
index.d.ts
archivo allí. Pop en cualquier parte de su directorio de proyecto y VS debería usarlo de inmediato.fuente
Para angular CLI V7
Asegúrese de que jquery tenga una entrada en angular.json -> scripts
Vaya a tsconfig.app.json y agregue una entrada en "tipos"
fuente
ACTUALIZACIÓN 2019:
La respuesta de David es más precisa.
TypeScript admite bibliotecas de proveedores de terceros, que no utilizan Typecript para el desarrollo de bibliotecas, utilizando DefinitelyTyped Repo .
Debe declarar
jquery
/$
en su componente, si tsLint está activado para este tipo de comprobaciones de tipo.Por ej.
fuente
declare
se usa la palabra clave. Pero, aún podemos decirle a vscode acerca de los tipings si están presentesnode_modules
, por eso la instalación de tipings ayuda en intellisense, pero para un proyecto webpack de vainilla, sin fallas en la traducción del proyecto dedeclare
palabras clave. He eliminado mi declaración de la respuesta, para no confundir a las personas.import JQuery from 'jquery'; declare var $: JQuery;
. No estoy seguro, si esto funcionará.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:
entonces, no necesita cargar jquery por segunda vez (con
npm install --save jquery
) pero tiene todas las ventajas de Typecriptfuente
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:
segundo (muy muy muy importante!!!):
entonces, puedes disfrutarlo:
¡Es suave como la seda!
fuente
declare global { interface Window { $ :JQueryStatic; } }
suTypeDeclaration.d.ts. Y teniendo en cuenta correctamente, debe comprobar si $ está montado en 【ventana】. Tales comoimport $ = require('jquery'); window.$ = $ ;
, o su jQuery 【$】 ha sido montado por una etiqueta de script externo.import $ = require('jquery') ; window.$ = $;
. (Será mejor que inicie este, en el punto de inicio de su proyecto. Y prefiero crear unsdk
directorio, para administrar todos los requisitos de la biblioteca externa e inicial en un archivo o lugar).Esto funciona para mí ahora y hoy en Angular versión 9
fuente
Esto funciona para mi:
fuente