Comment importer JQuery dans un fichier dactylographié?
mise à Jour
aucune importation n'était requise. Au lieu de cela, j'ai dû ajouter une référence au haut du fichier. Donc la première ligne de mon WebAPI.js aurait dû être /// <reference path ="../typings/jquery/jquery.d.ts"/>
au lieu de import { $ } from '../jquery-3.1.1';
j'essaie d'importer jQuery pour l'utiliser dans un fichier dactylographié, mais je reçois une variété d'erreurs avec tout ce que j'essaie. J'ai suivi les solutions ici et ici, mais sans aucune chance.
tsconfig.json
{
"compilerOptions": {
"removeComments": true,
"preserveConstEnums": true,
"out": "Scripts/CCSEQ.Library.js",
"module": "amd",
"sourceMap": true,
"target": "es5",
"allowJs": true
}
WebAPI.js
import { $ } from '../jquery-3.1.1';
export class ExpenseTransaction extends APIBase {
constructor() {
super();
}
Get(): void {
let expenses: Array<Model.ExpenseTransaction>;
let self = this;
$.ajax({
url: this.Connection,
type: "GET",
contentType: "application/json",
dataType: "json",
success: function (data: any): void {
expenses = self.ConvertToEntity(data.value);
},
error: function (data: any): void { console.log(data.status); }
});
};
}
j'ai aussi essayé import * as $ from '../jquery.3.1.1'
Erreurs
Module jquery-3.1.1 has no exported member $
Property ajax does not exist on type (selector: any, context: any) => any
4 réponses
Vous devez l'importer en tant que import * as $ from "jquery";
, selon tapuscrit documentation et fichier de définition de jquery le module est défini comme une ambiante module:
declare module "jquery" {
export = $;
}
Ambiant déclarations, c'est une promesse que vous faites avec le compilateur. Si ceux-ci n'existent pas à l'exécution et que vous essayez de les utiliser, les choses se casseront sans avertissement.
j'Espère qu'il aide!
Une importation n'est pas nécessaire. Au lieu de cela, ajoutez une référence au fichier de définition dactylographié en haut du fichier. Donc, la première ligne de l' WebAPI.js
doit être
/// <reference path ="../typings/jquery/jquery.d.ts"/>
au lieu de
import { $ } from '../jquery-3.1.1';
Selon DefinitelyTyped wiki:
un fichier de déclaration dactylographié est une façon de définir les types, les fonctions et les paramètres dans une bibliothèque JavaScript externe. En utilisant un fichier de déclaration dans votre texte le code activera Intellisense et la vérification de type contre la bibliothèque externe que vous utilisez.
jquery.d.ts
fait partie du DefinitelyTyped Library trouvé sur GitHub. Certainement tapé peut être inclus dans les projets Visual Studio via le Gestionnaire de paquets NuGet.
faire ceci : après avoir installé jquery avec npm ou utilisé avec cdn
le premier:
npm install @types/jquery --save-dev
et après:
import * $ de 'jquery';
Essayez de remplacer votre importation avec déclarer laissez $ :;