Auparavant, je pouvais utiliser une méthode lodash dans Angular avec une instruction d'importation ressemblant à ceci:
import {debounce as _debounce} from 'lodash';
Je reçois maintenant l'erreur suivante lors de l'utilisation de cette déclaration:
'"{...}/node_modules/@types/lodash/index"' has no exported member 'debounce'.
La seule chose qui compilera sans erreur est cette déclaration:
import * as _ from 'lodash';
Dans mon code, je change _debounce()
en _.debounce()
. Est-ce la seule façon (et/ou correcte) de le faire? Existe-t-il un moyen d'importer uniquement le rebond, ou est-ce que cela n'a pas d'importance en raison du "treehaking"? Je me rends compte que je peux écrire ma propre fonction anti-rebond, mais je m'intéresse surtout à la "bonne" façon de le faire.
p.s. Autres variations que j'ai essayées (chacune est associée à une sorte d'erreur):
import {debounce as _debounce } from 'lodash/debounce';
import * as _debounce from 'lodash/debounce';
import debounce = require('lodash/debounce');
FYI ... J'utilise les versions suivantes:
Angulaire: 2.4.5
TypeScript: 2.1.5
Angular-cli: 1.0.0-beta.26
(si vous vous souciez de secouer les arbres, voir update)}
Je suppose que pour apporter le lodash à votre projet que vous avez déjà fait
npm install lodash --save
npm install @types/lodash --save-dev
Si vous souhaitez importer uniquement les fonctions requises, procédez comme suit:
import * as debounce from 'lodash/debounce'
ou
import { debounce } from "lodash";
Utilisez-le comme:
debounce()
BTW: Vous devrez peut-être rétrograder votre version de TypeScript vers 2.0.10
car vous utilisez angular 2.x.
npm install [email protected] --save-dev
METTRE À JOUR:
Récemment, j'ai réalisé que lodash package n'est tout simplement pas arboré, donc si vous avez besoin de trois secousses, utilisez simplement lodash-es .
npm install lodash-es --save
npm install @types/lodash-es --save-dev
import debounce from 'lodash-es/debounce'
J'ai eu le même problème et cela a commencé à fonctionner après avoir changé "@ types/lodash" en version "4.14.50".
Cela a résolu pour moi, comme écrit sous "mis à jour" par Kuncevič et édité par Roy
yarn add lodash-es
yarn add @types/lodash-es --dev
import { debounce as _debounce } from 'lodash';
Je devais importer les es-modules, sinon on me donnait des erreurs de compilation - probablement à cause de ma configuration (tsconfig.json).