【发布时间】:2018-11-11 20:23:20
【问题描述】:
我有一个小型 Angular 6 库,我正在其中构建一个可重用的组件来显示页面级消息,例如错误、信息、警告和成功。
为此我有一个枚举ServerMessageType.ts,这很简单:
export enum ServerMessageType {
Error = 'error',
Info = 'info',
Success = 'success',
Warning = 'warning'
}
ServerMessage.ts 应该使用ServerMessageType:
import { ServerMessageType } from './ServerMessageType';
export class ServerMessage {
constructor(public type: ServerMessageType,
public messageText: string,
public dismissible?: boolean,
public id?: string) {
}
}
server-messages.component.ts
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 时,我得到一个错误:
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 枚举,则构建和部署一切都很好。
谢谢!
【问题讨论】:
-
请查看
server-messages.component.ts。你有错误的导入语句。 -
你没有分享你的
messages.component.ts... 你分享了'ServerMessageComponent.ts' ....这是你在stackoverflow上的错误吗? -
不。它不是重复的。它与 Angular 组件或模块无关。她只是在使用枚举 - 语言功能。
-
这真是令人困惑。你能告诉我
projects/framework/src/lib/server-messages/@IsabellePlante 中的所有文件名吗
标签: angular typescript enums