同时从 'lodash'、'rxjs'、'ramda' 导入 { map } 而不会影响可读性
Import { map } from 'lodash', 'rxjs', 'ramda' at the same time without hurting readability
如何从多个导入中导入 map
或 merge
或任何其他函数?
import { map } from 'lodash';
import { map } from 'rxjs/operators';
import { map } from 'ramda';
显而易见的答案是:
import { map as _map } from 'lodash';
import { map as rxMap } from 'rxjs/operators';
import { map as RMap } from 'ramda';
但这 丑陋 并且代码模糊。由于静态分析的局限性,我认为这是一种破解,而不是解决方案,而是一种解决方法
我能想到别的办法:
import * as _ from 'lodash';
import { map } from 'rxjs/operators';
import * as R from 'ramda';
然而,由于 tree-shaking 的原因,JS 社区对此不以为然。但是,我认为它被夸大了,only saving 45kb。
基本上您可以创建自己的实用程序包。例如:
// utils/lodash.js
export { map, get, set } from 'lodash';
// yourScript.js
import * as _ from 'utils/lodash';
如果您在整个应用程序中针对特定用例(可观察、array/object 操作等)使用这些地图功能,最好重命名这些方法以反映应用程序的特定用例。
我会像对待三个名为 "map" 的非供应商方法一样对待它们。如果您在自己的代码中发现了这一点,您将确定所有方法是否都做同样的事情,如果不是,则重命名它们以更具体地说明它们的作用。
例如,rxjs.map 将变为 mapObservable 等。会有一个维护问题在您的模块中强制执行您的新名称,但好处是您的开发人员需要做的上下文切换更少了解正在使用什么以及为什么。
这可能是一个非常主观的问题,因为答案可能会因团队、惯例和您的应用程序而异。
P.S。减少维护的一种方法是通过包装器公开这些方法,并让您的团队将此包装器用于这些特定功能。
老实说,这取决于你/无论你为谁工作更看重什么。有时额外的 45kb 很糟糕,但大多数时候,尤其是在个人项目上,没人会在意。如果它能让你的编程更有效率,那就选择最适合你的。
如何从多个导入中导入 map
或 merge
或任何其他函数?
import { map } from 'lodash';
import { map } from 'rxjs/operators';
import { map } from 'ramda';
显而易见的答案是:
import { map as _map } from 'lodash';
import { map as rxMap } from 'rxjs/operators';
import { map as RMap } from 'ramda';
但这 丑陋 并且代码模糊。由于静态分析的局限性,我认为这是一种破解,而不是解决方案,而是一种解决方法
我能想到别的办法:
import * as _ from 'lodash';
import { map } from 'rxjs/operators';
import * as R from 'ramda';
然而,由于 tree-shaking 的原因,JS 社区对此不以为然。但是,我认为它被夸大了,only saving 45kb。
基本上您可以创建自己的实用程序包。例如:
// utils/lodash.js
export { map, get, set } from 'lodash';
// yourScript.js
import * as _ from 'utils/lodash';
如果您在整个应用程序中针对特定用例(可观察、array/object 操作等)使用这些地图功能,最好重命名这些方法以反映应用程序的特定用例。
我会像对待三个名为 "map" 的非供应商方法一样对待它们。如果您在自己的代码中发现了这一点,您将确定所有方法是否都做同样的事情,如果不是,则重命名它们以更具体地说明它们的作用。
例如,rxjs.map 将变为 mapObservable 等。会有一个维护问题在您的模块中强制执行您的新名称,但好处是您的开发人员需要做的上下文切换更少了解正在使用什么以及为什么。
这可能是一个非常主观的问题,因为答案可能会因团队、惯例和您的应用程序而异。
P.S。减少维护的一种方法是通过包装器公开这些方法,并让您的团队将此包装器用于这些特定功能。
老实说,这取决于你/无论你为谁工作更看重什么。有时额外的 45kb 很糟糕,但大多数时候,尤其是在个人项目上,没人会在意。如果它能让你的编程更有效率,那就选择最适合你的。