web-dev-qa-db-fra.com

Impossible de trouver le nom '$' dans le fichier TS sauf dans chaque fichier.

Je configure TypeScript dans Visual Studio 2015. Je vais utiliser jQuery avec les fichiers TS. Quand j'utilise jQuery, VS soulignera le '$' et dira que le nom ne peut pas être trouvé et qu'il ne sera pas construit correctement. La seule façon de le construire est d’ajouter la référence aux typages jquery dans chaque fichier TS. /// <reference path="typings/index.d.ts" /> Est-il possible d'utiliser cette référence globalement au lieu de l'ajouter à chaque fichier?

Dans Visual Studio Code, je n'ai pas ce problème.

Mon répertoire ressemble à ceci - Scripts --ts --- typages --- main.ts tsconfig.json --js

Mon fichier tasks.json à la racine

    {
    "version": "0.1.0",

    // The command is tsc. Assumes that tsc has been installed using npm install -g TypeScript
    "command": "tsc",

    // The command is a Shell script
    "isShellCommand": true,

    // Show the output window only if unrecognized errors occur.
    "showOutput": "silent",

    // Tell the tsc compiler to use the tsconfig.json from the open folder.
    "args": ["-p", "../Scripts/Weblink/ts"],

    // use the standard tsc problem matcher to find compile problems
    // in the output.
    "problemMatcher": "$tsc"
}

taskconfig.json dans Scripts/ts

{
"compileOnSave": true,
"compilerOptions": {
    "noImplicitAny": false,
    "noEmitOnError": true,
    "removeComments": false,
    "sourceMap": true,
    "target": "es5",
    "outDir": "../lib/"
},
"exclude": [
    "typings/*"
]
}
18
stanggt3

Dans TypeScript 2.x, vous devriez installer les typages comme ceci: 

npm install --save @types/jquery 

Et alors:

import * as $ from "jquery"; 

Pas besoin de le référencer, TypeScript le gérera automatiquement. 

Plus d'informations

29
lenny
  • Dans TypeScript 3 en utilisant npm:

    npm install --save-dev @types/jquery 

    Et :

    import "jquery";

    L'alias n'est pas nécessaire.

  • Si vous n'utilisez pas npm:

    Ajouter un nouveau fichier de déclaration (jquery.d.ts) contenant declare module 'jquery';

    Et :

    import "jquery";

0
Roque Orts

ajoutez à votre tsconfig.json:

"moduleResolution": "node",
"lib": [ "es2015", "es2017", "dom" ]
0
AlexGH