【问题标题】:Argument of type 'string' is not assignable to parameter of type 'Date'“字符串”类型的参数不可分配给“日期”类型的参数
【发布时间】:2022-02-05 05:11:20
【问题描述】:

我不太清楚我在日期方面哪里出了问题。我收到错误消息:

“'string' 类型的参数不能分配给'Date' 类型的参数。

<mat-sidenav-content>
    <div class="sect">
        <h1>Damage Assessment Report</h1>
    </div>
    <mat-card>
        <mat-card-header>Create report:</mat-card-header>
        <br><br>
        <mat-card-content>
            <div> 
                <mat-form-field>
                    <mat-label>Report Description</mat-label>
                    <input
                        #DescOfReportInput  
                        placeholder="Description of Report"
                        matInput type= "string"
                        required>
                </mat-form-field>
                    <br>
                <mat-form-field>
                    <mat-label>Author</mat-label>
                    <input  
                        #AuthorInput
                        placeholder="Author"
                        matInput type= "string"
                        required>
                </mat-form-field>
                <br>
                <mat-form-field>
                <mat-label>Date</mat-label>
                <input  
                        #DateInput
                        placeholder="----/--/--"
                        matInput type= "Date"
                        required>
                </mat-form-field>
                <br>
            </div>
            <div> 
                <button mat-raised-button type="button" (click)="createDamageAssessmentReport(DescOfReportInput.value, AuthorInput.value, DateInput.value)" color="primary">Create</button>
            </div>
        </mat-card-content>
    </mat-card>
</mat-sidenav-content>

相关的TypeScript文件如下:

import { Component, OnInit } from '@angular/core';
import { DamageAssessmentReportService } from 'src/app/damage-assessment-report.service';

@Component({
  selector: 'app-fa-daform',
  templateUrl: './fa-daform.component.html',
  styleUrls: ['./fa-daform.component.css']
})
export class FADAFormComponent implements OnInit {

    constructor(private damageAssessmentReportService : DamageAssessmentReportService) { }
  
    //assessmentDescription: string, author: string, reportDateTime: Date
  
    createDamageAssessmentReport(assessmentDescription: string, author: string, reportDateTime: Date){
        this.damageAssessmentReportService
            .createDAReport(assessmentDescription,author, reportDateTime)
            .subscribe((response : any)=>{
                console.log(response);
            });
    }

    ngOnInit(): void { }
}    

【问题讨论】:

  • 您的函数需要一个日期,但您为最后一个参数提供了一个字符串。
  • 只需将reportDateTime: Date 更改为reportDateTime: string
  • 它可以工作,但在更改为 reportDateTime: string 时会产生新问题,当将其传递到 this.damageAssessmentReportService .createDAReport(assessmentDescription,author, reportDateTime) 时会出现错误 “字符串”类型的参数不可分配给“日期”类型的参数 其中变量reportDateTime 放在函数参数中。

标签: javascript angular typescript mean-stack


【解决方案1】:

试试这个:

createDamageAssessmentReport(assessmentDescription: string, author: string, reportDateString: string){

const reportDateTime = new Date(reportDateString); // Here you should have your date ready to be used as you wish

this.damageAssessmentReportService
   .createDAReport("New Report","Name", new Date(2020, 9, 10))
   .subscribe((response : any)=>{
                console.log(response);
   });
}

【讨论】:

猜你喜欢
  • 2017-05-12
  • 2019-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-03
  • 2019-09-07
  • 2020-06-02
  • 1970-01-01
相关资源
最近更新 更多