enum экспортируется из пространства имен в angular 6, вызывая ошибку во время выполнения - PullRequest
0 голосов
/ 16 мая 2019

Почему enum экспортируется из angular, вызывая ошибку времени выполнения?Intellisense работает нормально, но во время выполнения он не может найти пространство имен везде, где я использовал экспортированный enum.Но это работает для экспортируемого интерфейса из пространства имен.

проверьте этот стек https://stackblitz.com/edit/angular-enum-within-namespace

Я экспортировал две сущности из Пользователь пространства имен (файл: user.ts)

declare namespace User {
    export enum eUserType {
        Driver = 1,
        Passenger = 2,
        User = 3
    }

    export interface Profile {
        firstName: string;
        lastName: string;
    }
}

При попытке использовать его в AppComponent (file: app.component.ts)

import { Component } from '@angular/core';

@Component({
    selector: 'my-app',
    templateUrl: './app.component.html',
    styleUrls: [ './app.component.css' ]
})
export class AppComponent  {
    constructor() {
    this.displayUser();

    // uncommenting following piece of code is causing an error ... 
    // ==> this.displayUserType();
    }

    displayUserType() {
        const newVariable = User.eUserType.Driver;
        console.log(newVariable);
    }

    displayUser() {
        const profile = <User.Profile> {
            firstName: "John",
            lastName: "Doe"
        };
        console.log("profile:", profile);
    }
}

, когда вы раскомментируете this.displayUserType () , вы будетесм. ошибку в консоли Пользователь не определен

1 Ответ

0 голосов
/ 16 мая 2019

Вы можете изменить объявление пространства имен на export namespace User {...} вместо declare namespace User {...} и затем импортировать его в свой модуль следующим образом:

import { User } from './user'

Вот ваш Stackblitz модифицирован с рабочим примером

...