Есть много вопросов, связанных с таким поведением, но ответы дают лишь несколько обходных путей без объяснения , почему это не работает - или почему обходной путь помогает, если на то пошло.
Когда я экспортирую и импортирую перечисление, само перечисление равно undefined
, но когда я назначаю его переменной, оно будет работать. Мне это кажется совершенно безумным и не интуитивным.
Перечисление экспортируется как
export enum SkillType {
action = 'action',
language = 'language',
knowledge = 'knowledge',
}
В моем Vue компоненте у меня есть следующая функция:
import { SkillType } from '@/model';
isLanguageSkill(skill: CharacterSkill) {
return skill.type === SkillType.language;
}
Это не работает, потому что, как я обнаружил через отладчик, SkillType
это undefined
. Но когда я меняю код на
import { SkillType } from '@/model';
skillType = SkillType;
isLanguageSkill(skill: CharacterSkill) {
return skill.type === this.skillType.language;
}
, все работает как положено. Что здесь происходит?!
Обновление: я использую Webpack с конфигурацией, сгенерированной Vue CLI. Так как там много всего, я не публикую его полностью, вы можете найти его по адресу https://github.com/milgner/sr6-character-sheet, если вам интересно.