Области имен с больше, чем просто имена файлов для встряхивания дерева - PullRequest
0 голосов
/ 31 марта 2019

Я создаю библиотечный файл, который экспортирует много связанных функций. Я хотел бы иметь некоторое название, родственное этому:

libname
    subcategory1
    subcategory2

такой, что при использовании к нему можно получить доступ вот так

import { libname } from 'libname';
.
.
.

// somewhere in library-user code
libname.subcategory1.someFunc();

По сути, я хотел бы иметь вложенные области именования (что я бы назвал пространством имен). Насколько я знаю, это невозможно с базовым синтаксисом export <value> и export <function>, но это можно сделать, если я экспортирую объект const, например:

export const libname = {
    subcategory1: {
        someFunc,
    },
    subcategory2: {
        // etc.
    }
};

К сожалению, это делает его таким образом, что неиспользуемые функции не удаляются при встряхивании дерева, по крайней мере при использовании rollup. Весь объект присутствует всегда, независимо от моего использования объекта. Есть ли другой способ вложения имен, который не наносит серьезного вреда дрожанию дерева?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...