Pesquisa de site

Como usar jQuery com TypeScript


Estou tentando

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

Está mostrando este erro no Visual Studio: (TS) Não é possível encontrar o nome '$'.. Como posso usar jQuery com TypeScript?

Resposta #1

É muito provável que você precise baixar e incluir o arquivo de declaração TypeScript para jQuery—jquery.d.ts—em seu projeto.

Opção 1: Instale o pacote @types (Recomendado para TS 2.0+)

Na mesma pasta do seu arquivo package.json, execute o seguinte comando:

npm install --save-dev @types/jquery

Então o compilador irá resolver as definições para o jquery automaticamente.

Opção 2: Baixar Manualmente (Não Recomendado)

Baixe aqui.

Opção 3: Usando Tipagens (Antes do TS 2.0)

Se você estiver usando typings, então você pode incluí-lo desta maneira:

// 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

Após configurar o arquivo de definição, importe o alias ($) no arquivo TypeScript desejado para usá-lo normalmente.

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

Você pode precisar compilar com --allowSyntheticDefaultImports—adicione "allowSyntheticDefaultImports": true em tsconfig.json.

Também instalar o pacote?

Se você não tem o jQuery instalado, provavelmente você quer instalá-lo como uma dependência via npm (mas isso nem sempre é o caso):

npm install --save jquery

Resposta #2

Para Angular CLI V2+

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

Certifique-se de que o jquery tenha uma entrada em angular.json -> scripts

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

Vá para tsconfig.app.json e adicione uma entrada em compilerOptions -> types

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

Resposta #3

No meu caso, eu tive que fazer isso

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

Então, no arquivo de script A.ts

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

Resposta #4

PARA Visual Studio Code

O que funciona para mim é garantir que eu faça o carregamento padrão da biblioteca JQuery via uma tag <script> no index.html.

Correr

npm install --save @types/jquery

Agora as funções JQuery $ estão disponíveis em todos os arquivos .ts, sem necessidade de quaisquer outros imports.

Resposta #5

Acredito que você pode precisar dos tipos do Typescript para JQuery. Como você disse que está usando o Visual Studio, você poderia usar o Nuget para obtê-los.

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

O comando no Console do Gerenciador de Pacotes Nuget é

Install-Package jquery.TypeScript.DefinitelyTyped

Atualização: Como observado no comentário, este pacote não é atualizado desde 2016. Mas você ainda pode visitar a página deles no Github em https://github.com/DefinitelyTyped/DefinitelyTyped e baixar os tipos. Navegue até a pasta da sua biblioteca e então baixe o arquivo index.d.ts de lá. Coloque-o em qualquer lugar no diretório do seu projeto e o VS deve usá-lo imediatamente.

Resposta #6

ATUALIZAÇÃO 2019:

A resposta de David é mais precisa.

O Typescript suporta bibliotecas de fornecedores terceirizados, que não utilizam Typescript para o desenvolvimento da biblioteca, usando o repositório DefinitelyTyped.

Você precisa declarar jquery/$ em seu Componente, se o tsLint estiver ativado para esse tipo de verificação de tipo.

Por exemplo.

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

Artigos relacionados