【问题标题】:Typescript angular 5 object inheritance打字稿角度5对象继承
【发布时间】:2017-11-26 02:10:41
【问题描述】:

我在编写我的第一个 Angular 5 应用程序时遇到了继承问题。我收到错误消息:“CouponEvent”类型上不存在属性“消息”。来自 angular-cli

export class Event {
public _eventId: number;
public _type: string;
public _name: string;
public _sendDate: Date;
public _message: string;

constructor(){}

public get message(): string {
 return this._message;
}

public get type(): string {
 return this._type;
}

public get name(): string {
 return this._name;
}

public get sendDate(): Date {
 return this._sendDate;
}

public get eventId():number {
 return this._eventId;
}
}

import './Event';
export class CouponEvent extends Event {
 _expirationDate: Date;

get expirationDate(): Date {
 return this._expirationDate;
}
}

在我的 util 类中,我尝试格式化消息,但未找到 event.message。

import { Injectable } from '@angular/core';
import {Event} from '../models/Event';
import {CouponEvent} from '../models/CouponEvent';

@Injectable()
export class UtilService {

formatMessage(event: CouponEvent): string {
  let msg = event.message.replace(/\${code}/gi,event.code);

  const date = event.expirationDate.toString
   msg = event.message.replace(/\${expiration}/gi,date);

  return msg;
 }
}

任何帮助将不胜感激。这是我第一次使用类型脚本,我有点迷失为什么这不起作用。

谢谢你的建议!!

【问题讨论】:

    标签: angular oop typescript inheritance


    【解决方案1】:

    我猜那是因为Event 是 Typescript-native 类型,可能会有一些命名冲突。尝试重命名您的班级和/或import { Event } from './Event';

    【讨论】:

      【解决方案2】:

      我终于发现我需要将这些类放到同一个文件中。我将每个班级都放在自己的事件文件中。在将类声明放在一个之后,它就起作用了。

      【讨论】:

      • 你不需要。问题出在导入语句中。你看到我的回答了吗?
      • @DanielKucal 是的。谢谢你的建议我真的很感激!
      猜你喜欢
      • 1970-01-01
      • 2017-12-04
      • 1970-01-01
      • 2017-07-14
      • 1970-01-01
      • 2022-01-11
      • 2017-04-10
      • 2021-04-26
      • 1970-01-01
      相关资源
      最近更新 更多