Как создать «пространство имен» в машинописном шрифте, совместимом с красивыми для служебных функций - PullRequest
0 голосов
/ 22 марта 2020

Перед обновлением моей цепочки инструментов и началом использования более симпатичной конфигурации по умолчанию я смог создать пространство имен машинописи. Моя цель состояла в том, чтобы обеспечить определенный c способ использования вспомогательных функций файла из других модулей с использованием некоторого пространства имен / объекта. Пример кода:

export declare namespace MyUtils {
   // more stuff under that scope
}

Это было полезно из-за принудительного использования:

import { MyUtils } from '../utils/utils';

MyUtils.myHelperFunction();

После обновления моей цепочки инструментов Prettier жалуется:

ESLint: ES2015 module syntax is preferred over custom TypeScript modules and namespaces.(@typescript-eslint/no-namespace)

ОК. Давайте обновим код так:

export declare module 'MyUtils' {
   // My bunch of stuff now
}

Теперь я получаю ошибки другого типа, которые я не понимаю:

Ambient declaration should have no initializer

Или

A 'const' initializer in ambient context must be a primitive literal or literal enum reference

Как я могу представить ряд утилит / помощников внутри области действия, чтобы обеспечить определенное использование модулей, которые используют их в качестве зависимости в как я делал это раньше с синтаксисом пространства имен машинописного текста, но он был совместим с красивее?

...