Угловые тесты CLI и перечисления - PullRequest
0 голосов
/ 15 мая 2018

Я борюсь с тестовой средой Angular CLI и типами enum. Я создаю перечисление как это (в someenum.ts):

const enum SomeEnum {
  Val0,
  Val1
}

И используя его так (в app.component.ts):

private someEnum = SomeEnum.Val0;

Если я запускаю этот код, используя ng serve, он работает нормально, а сгенерированный js определяет его как:

this.someEnum = 0 /* Val0 */;

так и должно быть.

Однако, когда я пытаюсь выполнить тесты с использованием ng test, происходит сбой с ошибкой компилятора:

ERROR in src/app/app.component.ts(10,14): error TS2304: Cannot find name 'SomeEnum'.

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

1 Ответ

0 голосов
/ 06 сентября 2018

У меня просто была такая же проблема.Вы можете исправить это, экспортируя ваши перечисления.Например:

languageEnums.ts

export const enum Languages {
  ENGLISH = "en-US",
  SWEDISH = "sv-SE"
}

app.component.ts

import { Languages } from '../assets/constants';

...

private language = Languages.ENGLISH; 

Я создал новую папку constants в папке assets, которая содержит все перечисления. Одно перечисление на файл! Вам не нужно импортировать их в файлы app.module.ts или .spec.

После этого ошибки исправлены.

...