Wenn Sie item.startDate ? new Date(items.startDate) : new Date()
zum aktuellen Datum Verwendung auf Standard möchten. Auch deine Klasse ist eine schlechte Idee. Verwenden Sie keine Klassen, um solche Objekte darzustellen, sondern verwenden Sie stattdessen Schnittstellen.
Egal, was Sie brauchen, ist im Wesentlichen
dated.ts
export interface Dated {
realStartDate?: Date;
}
Service-Artikel-service.ts
import {Inject} from '@angular/core';
import {Http} from '@angular/http';
import {Observable} from 'rxjs';
import 'rxjs/add/operator/map';
import {Dated} from './dated';
@Inject export default class DatedItemsService {
constructor(readonly http: Http) {}
get(id): Observable<Dated> {
return this.http.get(`/api/v1/dateditems/${id}`)
.map(response => response.json())
.map(({startDate}) => ({
realStartDate: startDate ? new Date(startDate): undefined
});
}
}
EDIT: Basierend auf Kommentare Es scheint, dass ein leerer Wert anstelle von th gewünscht wird Das aktuelle Datum, also habe ich die Antwort entsprechend aktualisiert.
Was erwarten Sie? – Saravana
item.startDate ist möglicherweise null. Setzen Sie einen Debugger und überprüfen Sie. 'new Date (null)' return 01/01/1970 – adiga
Wenn Sie das aktuelle Datum verwenden möchten, verwenden Sie 'item.startDate? neues Datum (items.startDate): neues Date() '. Auch deine Klasse ist eine schlechte Idee. _never_ '' classe's verwenden, um Serverantworten darzustellen, bevorzugen 'interface's dafür. In diesem Fall benötigen Sie kein Wrapper-Objekt. –