Работа с машинописи 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 - это два случая, когда я пытался исправить проблему.
Я использовал этот gimmic в другом месте в коде, и он работал нормально.
я в том числе определение конструктора Date из lib.d.ts для справки:
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 кажется очевидной ... аргумент конструктора ожидает 'string' или' number', но вы передаете ему еще одну 'Date'. Если 'discount.dateFrom' не совпадает с переменной, указанной в верхней части? – danludwig
@danludwig Я предполагаю, что строка 368 должна исправить проблему –
Проблема с строкой # 368 заключается в том, что неизвестного преобразования из 'Date' в' string' нет. Это похоже на машинописный текст, говорящий вам, что это недопустимый литой. Если для типа времени выполнения 'discount.dateFrom' или' discount.dateTo' можно использовать тип runtime, то вы должны объявить их как 'any', а не' Date'. – danludwig