2017-11-26 14 views
0

私の最初のangle 5アプリケーションを作成する継承の問題が残っています。エラーが表示されます。プロパティ 'message'がタイプ 'CouponEvent'に存在しません。アングルクラスからTypescript angle 5オブジェクトの継承

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; 
} 
} 

ご協力いただければ幸いです。これは私が最初にタイプ・スクリプトを使って作業しているのですが、なぜこれが機能しないのか分かりません。

ありがとうございました!

答えて

3

EventはTypescriptネイティブタイプなので、名前が衝突することがあります。クラスの名前を変更してください。import { Event } from './Event';

0

私は最終的にクラスを同じファイルに入れる必要があることを理解しました。私はそれぞれのクラスを独自のイベントファイルに入れました。クラス宣言を1つ入れた後、それはうまくいった。

+0

あなたはそうする必要はありませんでした。問題はインポートステートメントにありました。私の答えは見たことがありますか? –

+0

@DanielKucalはい。あなたの提案をありがとう、本当にありがとう! – user1026498

関連する問題