web-dev-qa-db-fra.com

Lodash - '_' fait référence à un UMD global et lodash.js n'est pas un module d'erreurs

Si je ne fais rien et ajoute la définition de type cela fonctionne pour jQuery mais lodash obtient un

'_' fait référence à un UMD global, mais le fichier actuel est un module. Pensez à ajouter une importation à la place.

Si j'essaie d'importer Lodash avec n'importe quelle combinaison d'appel d'importation, je reçois

lodash.js n'est pas un module

J'ai essayé d'obtenir de l'aide en posant une question ici et elle était fermée car il y avait une autre réponse pour Angular (Angulaire 2). J'ai vraiment besoin d'une vraie réponse, alors je ré-affiche avec mes propres solutions, en espérant que quelqu'un finira par m'aider à comprendre ce problème.

Dans ce cas je suis:

  1. Ne pas utiliser de frameworks comme Angular
  2. Utiliser TypeScript
  3. Utiliser requirejs pour importer des modules
  4. Utiliser Visual Studio
  5. Utiliser MVC5
7
AndrewBenjamin

J'ai ajouté le code suivant dans mon fichier de définition de frappe global (~\src\typings.d.ts) pour résoudre le problème. J'utilise Angular CLI 1.7

// lodash global typing - begin
declare namespace _ {
}
// lodash global typing - end
7
Feng

J'utilise import * as _ from 'lodash'; dans mon fichier de travail après l'installation de lodash.

1
Nizam Khan

'_' fait référence à un UMD global, mais le fichier actuel est un module. Pensez à ajouter une importation à la place.

Ceci est causé par la définition du type. Allez dans votre fichier de frappe et supprimez ces lignes:

export = _;
export as namespace _;

Cela résoudra l'erreur.

***MODIFIER****

La suppression des instructions d'exportation ci-dessus provoquera une autre erreur si vous avez des déclarations globales dans votre fichier de définition de type, par exemple, comme ceci:

declare global { }

Pour résoudre ce problème, déplacez les propriétés de la déclaration globale vers les interfaces qui les référencent ou supprimez-les entièrement et modifiez les types de références en un élément générique. Je ne suis pas sûr de la solution qui permettra une meilleure compilation finale, mais le premier n’a posé aucun problème dans mon application depuis IE11.

0
AndrewBenjamin