web-dev-qa-db-fra.com

Erreur de compilation Typescript et JQuery: impossible de trouver le nom '$'

Je teste TypeScript avec jquery, mais lorsque je compile le fichier test.ts, cela me donne toujours une erreur indiquant: Impossible de trouver le nom '$'.

J'ai déjà importé jquery et ajouté sa référence de définition. Si j'utilise import $ = require("jquery") dans mon test.ts fichier, une autre erreur "Cannot find module jquery "se produira lors de la compilation tsc. Cependant, le dossier JQuery existe déjà dans le dossier node_modules.

Est-ce que quelqu'un sait quelle est la bonne façon d'utiliser jquery en tapuscrit?

Voici mes étapes:

  1. Installez jquery en utilisant npm install jquery --save
  2. Installez les typages et la définition de jquery en utilisant typings install --global --save dt~jquery
  3. Ajouter une référence jquery en haut de test.ts /// <reference path="../../../typings/globals/jquery/index.d.ts" />

tsconfig.json

{
    "compilerOptions": {
        "jsx": "react",
        "outDir": "./dist",
        "sourceMap": true,
        "noImplicitAny": true,
        "module": "commonjs",
        "target": "es5",
        "experimentalDecorators": true
    },
    "exclude": [
        "node_modules"
    ],
    "files": [
        "./typings/index.d.ts",
        "./src/wo/tests/test.ts",
    ]
}

test.ts

/// <reference path="../../../typings/globals/jquery/index.d.ts" />

let test:any=$("div");
19
Mark Yuan

Si vous trouvez ces erreurs 90% du temps, c'est à cause du problème de version de @ types/jquery

Essayez de courir:

 npm install jquery --save

Puis dans app.module.ts:

import * as $ from 'jquery';

Exécutez ensuite:

  npm install @types/[email protected]

Et vous devriez être prêt à partir.

22
Ignatius Andrew

Je ne sais pas si cela aide, mais j'ai résolu le même problème pour mon sélecteur de date.

J'ai d'abord installé jQuery avec cette commande: npm install --save-dev @types/jquery

Ajoutez ensuite les dépendances dans votre fichier angular-cli.json:

"styles": [
            "../node_modules/bootstrap/dist/css/bootstrap.css",
            "../node_modules/font-awesome/css/font-awesome.css",
            "../node_modules/ng2-datetime/src/vendor/bootstrap-datepicker/bootstrap-datepicker3.min.css",
            "styles.css"
        ]

"scripts": [
            "../node_modules/jquery/dist/jquery.js",
            "../node_modules/ng2-datetime/src/vendor/bootstrap-datepicker/bootstrap-datepicker.min.js"
        ]

Je pense que l'ajout de la partie jQuery pourrait fonctionner pour vous. Veuillez me faire savoir si cela fonctionne.

13
Nahid Shaiket

Vous devez probablement corriger certaines vulnérabilités.

Courir npm audit fix pour les corriger, ou npm audit pour plus de détails.

0
T.Dossev

Installez et importez le package suivant. il sera résolu pour l'erreur ("Impossible de trouver le nom '$'"). Angular est 7

importer 'datatables.net';

0
Ezhil Arasan