Stack Overflow на русском Asked on November 24, 2021
В процессе разработки столкнулись с разногласиями по выносу одинакового кода(иногда он ещё не дублируется) в отдельные файлы(файл). Приведу подходы на примере вспомогательных(хелперов) функций.
Создать директорию helpers
, в ней создать index.js
и в нём описывать все функции-хелперы. Привожу пример ниже.
Функция хелпер typeIs
:
/**
* Some imports ...
*/
/**
* Returns data type
*
* @param {*} type
* @return {string}
*/
const typeIs = () => {
return {}.toString.call(type).replace(']', '').split(' ')[1];
};
/**
* Куча функций помощников
*/
export {
...
typeIs
...
}
Создать директорию helpers
, в ней создать index.js
и в нём ПОДКЛЮЧАТЬ или управлять ПОДКЛЮЧЕНИЕМ функций. Привожу пример ниже.
Функция хелпер typeIs
(так же наименован файл):
/**
* typeIs
*
* Returns data type
*
* @param {*} type
* @return {string}
*/
export default type => {
return {}.toString.call(type).replace(']', '').split(' ')[1];
};
Файл index.js
:
import typeIs from './typeIs';
...
/**
* too much imports
*/
...
export {
...
typeIs
...
}
Мной отстаивается подход №2 так как:
Как решаются подобные проблемы в ваших командах?
Если я правильно вас понял, то тут вопрос стоит. Разделить ли утилиты по отдельным файлам и импортировать их в index.js либо реализовать их в самом index.js? Если так то ответ и да и нет.
Я предпочитаю начинать с одного файла и выносить (рефакторить) только по надобности. Делать сразу не вижу надобности для одной или 2 маленьких функций. Мнение остальных может не совпадать, в холивар не звать.
Answered by Aziz Umarov on November 24, 2021
Заведите директорию utils
, а для каждой отдельной фунции-хелпера свой файл.
Функции экспортируете.
Далее через именованный импорт добавляете их в нужные Вам файлы:
// внешней файл
export const helperFunction = () => {
console.log("test")
}
// файл, где требуется данный хелпер
import { helperFunction } from "./utils/helperFunction"
Answered by Vasily on November 24, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP