首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >带有普通TypeScript的Angular 6-错误:模块没有导出的成员

带有普通TypeScript的Angular 6-错误:模块没有导出的成员
EN

Stack Overflow用户
提问于 2018-06-02 00:35:33
回答 2查看 17.4K关注 0票数 2

我有一个小的Angular 6库,我正在其中构建一个可重用的组件来显示页面级消息,比如错误、信息、警告和成功。

为此,我有一个枚举ServerMessageType.ts,它非常简单:

代码语言:javascript
复制
export enum ServerMessageType {
    Error = 'error',
    Info = 'info',
    Success = 'success',
    Warning = 'warning'
}

ServerMessage.ts应使用ServerMessageType

代码语言:javascript
复制
import { ServerMessageType } from './ServerMessageType';

export class ServerMessage {
    constructor(public type: ServerMessageType, 
                public messageText: string, 
                public dismissible?: boolean, 
                public id?: string) {
    }
}

server-messages.component.ts

代码语言:javascript
复制
import { Component, EventEmitter, Input, Output } from '@angular/core';

import { ServerMessage } from './ServerMessage';
import { ServerMessageType } from './ServerMessageType';

    @Component({
  selector: 'app-server-messages',
  templateUrl: './server-messages.component.html',
  styleUrls: []
})
export class ServerMessagesComponent {

  @Input() messages: ServerMessage[];
  @Output() messageRemoved = new EventEmitter<ServerMessage>();

  constructor() {
  }

  clearMessage = function (index: number) {
    const message = this.messages[ index ];

    this.messageRemoved.emit(message);
    this.messages.splice(index, 1);
  };

  getMessageClass(message: ServerMessage): string {
    switch (message.type) {
      case ServerMessageType.Error:
        return 'alert-danger';
      case ServerMessageType.Info:
        return 'alert-info';
      case ServerMessageType.Success:
        return 'alert-success';
      case ServerMessageType.Warning:
        return 'alert-warning';
    }
  }

  isDismissible(message: ServerMessage): boolean {
    return message.dismissible === true;
  }
}

但是,当我运行ng build时,我得到一个错误:

代码语言:javascript
复制
BUILD ERROR  
> projects/framework/src/lib/server-messages/server-messages.component.ts(3,28):
> error TS2305: Module
> '"/Users/xxx/dev/apps/framework/projects/framework/src/lib/server-messages/ServerMessage"'
> has no exported member 'ServerMessageType'

我做错了什么?如果我将ServerMessage中的type更改为一个字符串,并完全删除ServerMessageType枚举,就可以很好地构建和部署。

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2018-06-02 01:06:54

你需要在你的根模块中导入你的组件,当你做服务的时候,让它@Injectable than use。

票数 2
EN

Stack Overflow用户

发布于 2018-06-02 00:56:56

如果您想要通过导入模块来导入组件,则需要显式地从模块中导出组件。

您必须解决此问题的代码是要从中导出该组件的模块代码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50647724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档