Экспорт перечислений в модулях Angular

Кто-нибудь знает, можно ли экспортировать перечисления в модулях Angular? Если нет, есть ли какие-либо рекомендации по отправке перечислений в модули Angular?

// not working example
// i dont know how to export GreatEnum

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { GreatComponent } from './great.component';
import { GreatEnum } from './great.enum';

@NgModule({
    imports: [
        CommonModule       
    ],
    declarations: [GreatComponent ],
    exports: [GreatComponent ]
})
export class GreatModule {
}

person Christoph Glaß    schedule 26.09.2017    source источник
comment
покажи свой enum файл   -  person porgo    schedule 26.09.2017
comment
Как классы: stackoverflow.com/a/46245869/5468463   -  person Vega    schedule 26.09.2017
comment
Как вы думаете, что вам нужно экспортировать? Почему вы хотите ввести его с помощью DI?   -  person jonrsharpe    schedule 26.09.2017
comment
вы можете напрямую использовать их, когда используете index.ts файл ствола   -  person Aravind    schedule 26.09.2017
comment
Файл enum выглядит примерно так: export enum GreatEnum { 'foo' = 1, 'bar' = 2 }   -  person Christoph Glaß    schedule 26.09.2017
comment
Если вы ищете, как использовать перечисления из подкомпонента в родительский компонент - stackoverflow.com/questions/35923744/   -  person Mauricio Gracia Gutierrez    schedule 04.06.2021


Ответы (2)


Почему вам нужно экспортировать enum из modules?. Это не обязательно . Это как interfaces и classes. Вы можете использовать его везде, кроме как непосредственно в файле templates.

Вы можете просто импортировать их в любой файл и использовать там. Для них нет такой ошибки, как

Директива или компонент не найдены

person Suren Srapyan    schedule 26.09.2017
comment
Я пишу модули для их повторного использования в нескольких угловых приложениях. Вот почему я хочу отправить перечисления внутри модуля. - person Christoph Glaß; 26.09.2017
comment
Смотреть. Когда вы добавите свои модули в пакеты приложения, вы можете экспортировать их из файла barrel вашего пакета. Он может содержать, например, export yourModule from yourFile; export yourEnum from yourEnumFile, а затем получить ваш модуль и перечисление, например import { YourModule, YourEnum } from YourPackage; - person Suren Srapyan; 26.09.2017

Если вы пишете библиотеки, вы должны экспортировать перечисления с ключевым словом const.

export const enum <ENUM_NAME>
person Amine Safi    schedule 07.07.2021