Typescript: экспорт всех функций в пространстве имен
допустим, у меня есть файл typescript Utils с кучей экспортируемых функций:
export function utilOne(){}
export function utilTwo(){}
я добавил индекс.d.TS файл в эту папку, куда я экспортирую * из файла Utils:
export * from './Utils';
в моих других классах я хотел бы получить доступ к функциям utilOne и utilTwo через пространство имен utils, например:
utils.utilOne();
Я знаю, что могу импортировать его так:
import * as utils from "./Utils";
однако, поскольку я буду использовать utils много, я хотел бы иметь возможность экспорт utils в пространстве имен, что-то вроде:
export {* as utils} from './Utils'; // this doesn't work
и затем использовать:
import * from "./Utils";
Однако экспорт {*как utils} не работает. Я мог бы поместить все функции Utils в модуль "utils" и экспортировать его, но я не уверен, что это хорошая практика. Есть ли правильный способ сделать это?
1 ответов
импорт * от
нет. Глобальный импорт считается плохой практикой даже в тех языках, которые его поддерживают. (например, python почему "импорт *" плохо?)
JavaScript / TypeScript не поддерживает его. Ведь его довольно полезно увидеть foo.bar
и знайте, что бар исходит от foo
вместо bar
и не имея понятия, откуда идет бар (без клонирования и анализа всего проекта).