2017-11-26 1 views
0

Ich bin mit einem Vererbungsproblem stecken Schreiben meiner ersten eckigen 5 Anwendung. Ich erhalte den Fehler: Eigenschaft 'Nachricht' existiert nicht beim Typ 'CouponEvent'. Ich bin versucht, die Nachricht zu formatieren und event.message gefunden von dem Winkel cliTypescript eckige 5 Object Vererbung

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

In meiner util Klasse nicht.

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

Jede Hilfe würde sehr geschätzt werden. Da ich das erste Mal mit Typ Script arbeite, bin ich irgendwie verloren, warum das nicht funktioniert.

Vielen Dank für Ihre Vorschläge !!

Antwort

3

Ich denke, das liegt daran, Event ist ein Typescript-nativer Typ, kann es einige Namenskollision sein. Versuchen Sie, Ihre Klasse umzubenennen und/oder import { Event } from './Event';

0

Ich fand schließlich heraus, dass ich die Klassen in die gleiche Datei setzen musste. Ich hatte jede Klasse in einer eigenen Ereignisdatei. Nachdem die Klassendeklarationen in eins eingegeben wurden, funktionierte es.

+0

Sie mussten nicht. Das Problem lag in der Importaussage. Hast du meine Antwort gesehen? –

+0

@DanielKucal ja. Vielen Dank für Ihren Vorschlag, ich schätze es sehr! – user1026498

Verwandte Themen