index.ts из папки утилит - это модуль барреля (баррель - это способ объединения экспорта из нескольких модулей в один удобный модуль. Сам баррель - это файл модуля, который реэкспортирует выбранные экспорты других модулей.)
Вы не можете импортировать сам модуль ствола. Потому что круговая зависимость появится. (будет выполнено бесконечное число импортируемых l oop)
index.ts
type-helper.ts
helper.ts
helper.ts -> index.ts -> type-helper.ts
-> helper.ts -> index.ts -> type-helper.ts
-> helper.ts
Чтобы предотвратить это, вам необходимо импортировать точный патч
// helper.ts
// import {isArray, isObject} from "./helper";
import {isArray, isObject} from "./helper/type-helper";
export function getPropertyIfExists(item: any, property?: string): any {
if (property) return item[property];
else return item;
}
export function removeUndefinedProperties<T>(obj: T): T {
const keys = Object.keys(obj);
for (const key of keys) {
if (isArray(obj[key])) obj[key] = removeEmptyValuesFromArray(obj[key]);
else if (isObject(obj[key])) obj[key] = removeUndefinedProperties(obj[key]);
else if (item === undefined || item === null) delete obj[key];
}
return obj;
}
Возможно, вместо helper.ts index.ts
это то же самое
helper.ts -> type-helper.ts -> helper.ts -> type-helper.ts ...
переместить функцию getPropertyIfExists () в type-helper.ts