Попытка получить доступ к общим перечислениям Typescript как с клиента, так и с сервера NodeJS

-1

Я пытаюсь получить доступ к перечислениям, написанным в файле машинописных файлов, как с сервера, так и с клиента. Файл называется SocketEndpoints.ts и содержит enum SocketMessages.

enum SocketMessages{
    CONNECTION_SUCCESSFUL
}

Я могу вызвать перечисление с клиентской стороны, используя теги ссылок на машинописи. Однако использование только эталонного тега со стороны сервера (и не использование какого-либо импорта/запроса) приводит к ошибке:

message: endPointModule.SocketMessages.CONNECTION_SUCCESSFUL
                                                      ^
TypeError: Cannot read property 'CONNECTION_SUCCESSFUL' of undefined

Как уже упоминалось в одном из приведенных ниже ответов, я должен использовать оператор import/require в серверной программе, которая работает на NodeJS и "экспортирует" перечисление. Однако использование ключевого слова "экспорт" приводит к тому, что перечисление недоступно для клиента. Пожалуйста, помогите мне выяснить способ, чтобы это перечисление было общедоступным с сервера и клиента с простотой. Я бы предпочел использовать только теги ссылок.

Как показано в ответе на этот вопрос:

stackoverflow.com/questions/14659996/reference-tag-pollutes-modules-using-typescript

Компилятор машинописного текста должен пересекать все указанные файлы и включать его код в скомпилированный вывод javascript. Но выход javascript для серверных программ, похоже, не имеет такого.

Теги:
enums

1 ответ

0

Вы не можете смешивать и сопоставлять ссылочные теги с файлами реализации с директивами import (подумайте о том, что происходит во время выполнения JavaScript - что загружает этот скрипт? Nothing.).

Поместите export перед enum и используйте import/require для загрузки SocketIoEndpoints.ts.

  • 0
    Возможно ли это сделать только с ссылочными тегами вместо import / require. Таким образом, я могу ссылаться на общий справочный файл, вместо того, чтобы писать / импортировать в каждом файле TS
  • 0
    А использование «экспорта» с перечислениями затрудняет чтение их из файлов на стороне клиента.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню