Ошибка при ссылке на enum, импортированный из типов npm - PullRequest
0 голосов
/ 26 июня 2018

Я недавно добавил наборы в частный модуль npm.

Один из экспортированных типов модуля - это следующее перечисление:

export enum ServerResponseCode {
  LoginFailed: 'loginFailed',
  LoginExpired: 'loginExpired'
}

Затем он импортируется другим проектом машинописи и используется какследующее:

import { ServerResponseCode } from 'private-module'

if(response.code === ServerResponseCode.LoginExpired)

Этот код не вызывает ошибок компиляции, но во время выполнения я получаю сообщение об ошибке: «Не удается прочитать свойство LoginExpired of undefined»

Почему это происходит и как я могу это сделатьэто исправить?

1 Ответ

0 голосов
/ 26 июня 2018

Решение состоит в том, чтобы просто экспортировать const enum в файле объявления типа private-модуля:

export const enum ServerResponseCode {
  LoginFailed: 'loginFailed',
  LoginExpired: 'loginExpired'
}

Краткое объяснение из этого потока stackoverflow :

Перечисление определено как const, так что любая ссылка на его элементы является встроенной (компилятором ts), таким образом избегайте поиска во время выполнения объекта ServerResponseCode, который на самом деле undefined (потому что.Файлы d.ts не приводят ни к какому JS).

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