javascript - Importer { map } de 'lodash', 'rxjs', 'ramda' en même temps sans nuire à la lisibilité


Comment importe-t-on map ou merge ou toute autre fonction à partir de plusieurs importations ?

import { map } from 'lodash';
import { map } from 'rxjs/operators';
import { map } from 'ramda';

La réponse évidente est de :

import { map as _map } from 'lodash';
import { map as rxMap } from 'rxjs/operators';
import { map as RMap } from 'ramda';

Mais ceci est laid et obscurcit le code. Je considère cela comme un bricolage, pas une solution, mais une solution de contournement en raison des limitations de l'analyse statique

Je peux penser à une autre façon :

import * as _ from 'lodash';
import { map } from 'rxjs/operators';
import * as R from 'ramda';

Cependant, la communauté JS désapprouve cela pour des raisons de tree-shaking. Cependant, je crois que c'est exagéré, économisant seulement 45ko.

Réponse #1

En gros, vous pouvez créer vos propres ensembles d'utilitaires. Par exemple :

// utils/lodash.js
export { map, get, set } from 'lodash';

// yourScript.js
import * as _ from 'utils/lodash';

Réponse #2

Honnêtement, cela dépend de ce que vous/la personne pour qui vous travaillez apprécie le plus. Parfois, les 45 ko supplémentaires sont terribles, mais la plupart du temps, et surtout dans un projet personnel, personne ne devrait s'en soucier. Et si cela peut rendre votre programmation plus efficace, choisissez ce qui fonctionne le mieux pour vous.