टाइपप्रति 1.4 मैं निम्नलिखित कोड तर्ज पर अजीब त्रुटियों हो रही है के साथ कार्य करना:टाइपप्रति संकलन तारीख प्रकार की त्रुटि
var dateFrom:Date;
var dateTo:Date;
if(typeof discount.dateFrom === "string"){
dateFrom = new Date(discount.dateFrom); // Line 362
} else {
dateFrom = discount.dateFrom;
}
if(typeof discount.dateTo === "string"){
dateTo = new Date(<string>discount.dateTo); // Line 368
} else {
dateTo = discount.dateTo;
}
transpiler रिटर्न निम्नलिखित:
[FULL_PATH]/Quotation.ts(362,37): error TS2345: Argument of type 'Date' is not assignable to parameter of type 'string'.
[FULL_PATH]/Quotation.ts(368,35): error TS2352: Neither type 'Date' nor type 'string' is assignable to the other.
लाइन 362 से अंतर और 368 दो मामले हैं जिन्हें मैंने इस मुद्दे को ठीक करने की कोशिश की।
मैंने कोड में दूसरी जगह इस गूढ़ का उपयोग किया, और यह ठीक काम किया।
मैं संदर्भ के लिए lib.d.ts से दिनांक निर्माता की परिभाषा शामिल कर रहा हूँ: date
से string
के लिए जाना जाता कनवर्टर @danludwig को
new(): Date;
new (value: number): Date;
new (value: string): Date;
new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date;
(): string;
पंक्ति # 362 में त्रुटि स्पष्ट प्रतीत होती है ... कन्स्ट्रक्टर तर्क 'स्ट्रिंग' या 'संख्या' की अपेक्षा करता है, लेकिन आप इसे एक और तारीख' पास कर रहे हैं। जब तक 'discount.dateFrom' शीर्ष पर घोषित चर के समान नहीं है? – danludwig
@danludwig मुझे लगता है कि लाइन 368 को समस्या को हल करना चाहिए –
लाइन # 368 के साथ समस्या यह है कि 'date' से' string' तक कोई ज्ञात रूपांतरण नहीं है। यह टाइपस्क्रिप्ट की तरह है जो आपको बता रहा है कि एक अवैध कलाकार है। यदि 'string.dateFrom' या' discount.dateTo' के रनटाइम प्रकार के लिए 'स्ट्रिंग' होने के लिए यह संभव है, तो आपको उन्हें 'दिनांक' के बजाय' किसी भी 'के रूप में घोषित करना चाहिए। – danludwig