类型'string []'不能分配给类型'string'。使用Date对象时

时间:2018-09-04 20:15:13

标签: angular typescript casting

我有一个从类/模型(projInfo)中获取数据的组件,包括日期对象。 我需要使用格式化的日期(日/月/年)的不同部分,以便我需要将它们分解并放入数组中。

我似乎无法将Date对象解析为string []类型。这是我所拥有的:

  public _startDate = this.projInfo.startdato; //.toString();

  @Input()
  set startDate(startDate: string) {
    // remove commas then split into array
    const d: string = this.startDateFormat.replace(',', '');
    this._startDate = d.split(' ');
  }

最后一行上的“ this._startDate”提供了错误Type 'string[]' is not assignable to type 'string'
我该如何解决?很难找到答案,因为我认为错误太大。

1 个答案:

答案 0 :(得分:0)

初始化类变量并为其分配值时,例如

public _startDate = this.projInfo.startdato;

,并且this.projInfo.startdato具有字符串类型,打字稿编译器还将_startDate的类型也假定为字符串。 由于字符串的split方法:String.prototype.split()将返回编译器抱怨的数组。

您必须确定_startDate变量应为哪种类型。我不知道this.projInfo.startdato是什么,所以我不能为您提供任何解决方案。

通常,您可以使用以下类型来初始化变量:

public _startDate: Array<string> = [this.projInfo.startdato];

打字稿中的打字工作就像

this._startDate = <string> d.split(' '); // I guess this still won't work in this case