Làm việc với các nguyên cảo 1,4 Tôi đang gặp lỗi hài hước trên các dòng mã sau:ngày biên soạn nguyên cảo loại lỗi
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;
}
Các transpiler trả về như sau:
[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.
Sự khác biệt từ dòng 362 và 368 là hai trường hợp tôi đã cố khắc phục sự cố.
Tôi đã sử dụng mánh lới quảng cáo này ở vị trí khác trong mã và hoạt động tốt.
tôi bao gồm định nghĩa của các nhà xây dựng ngày từ lib.d.ts để tham khảo:
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;
Lỗi trong dòng # 362 có vẻ hiển nhiên ... đối số hàm tạo mong đợi một 'chuỗi' hoặc' số', nhưng bạn đang chuyển nó một 'Ngày' khác. Trừ khi 'discount.dateFrom' không giống với biến được khai báo ở trên cùng? – danludwig
@danludwig Tôi đoán là dòng 368 nên khắc phục sự cố –
Vấn đề với dòng # 368 là không có chuyển đổi nào được biết từ 'Ngày' thành' chuỗi'. Nó giống như kiểu chữ cho bạn biết đó là một dàn diễn viên không hợp lệ. Nếu có thể cho kiểu thời gian chạy 'discount.dateFrom' hoặc' discount.dateTo' thành 'string', thì bạn nên khai báo chúng là' any' thay vì 'Date'. – danludwig