Tìm kiếm trang web

javascript - Nhập { map } từ 'lodash', 'rxjs', 'ramda' cùng lúc mà không làm giảm khả năng đọc


Làm thế nào để một người nhập map hoặc merge hoặc bất kỳ hàm nào khác từ nhiều lần nhập?

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

Câu trả lời rõ ràng là:

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

Nhưng điều này xấu xí và che đi mã nguồn. Tôi xem đây là một mẹo, không phải một giải pháp, mà là một cách khắc phục tạm thời do những hạn chế của phân tích tĩnh

Tôi có thể nghĩ ra một cách khác:

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

Tuy nhiên, cộng đồng JS không ủng hộ điều này vì lý do tree-shaking. Tuy nhiên, tôi tin rằng điều này bị phóng đại quá mức, chỉ tiết kiệm được 45kb.

Câu trả lời #1

Về cơ bản, bạn có thể tạo các gói tiện ích của riêng mình. Ví dụ:

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

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

Câu trả lời #2

Thành thật mà nói, điều đó phụ thuộc vào việc bạn/người mà bạn đang làm việc cho đánh giá cao điều gì hơn. Đôi khi 45kb thêm là thật sự tệ nhưng hầu hết thời gian, đặc biệt là trong các dự án cá nhân, thì chẳng ai quan tâm. Và nếu điều đó sẽ làm lập trình của bạn hiệu quả hơn, hãy chọn bất cứ điều gì phù hợp nhất với bạn.