umi、typescript问题:组件定义元组数据

2020-05-07  本文已影响0人  TouchMe丶

开发过程中出了一个tslint的校验问题。如下:


image.png

操作的是antd的一个组件RangePicker的value值。
value值默认接收moment类型的数据,并且是数组。
this.state.selectedDate就是一个moment数组。
但是却报了这个No overload matches this call错误。

不能将类型"Moment[]"分配给类型"undefined[] | null[] | [Moment] | [undefined, Moment] | [Moment | undefined] | [null, Moment] | [Moment, null] | [Moment, Moment] | null"
这样的错误

这里就要在state初始化的时候将selectedDate定义成2个Moment元素组成的元组即可,运用简单的类型断言即可。

原代码

selectedDate: [moment(new Date().getTime() - 7 * (1000 * 60 * 60 * 24)), moment(new Date().getTime() - (1000 * 60 * 60 * 24))],

修改后代码

selectedDate: [moment(new Date().getTime() - 7 * (1000 * 60 * 60 * 24)), moment(new Date().getTime() - (1000 * 60 * 60 * 24))] as [moment.Moment, moment.Moment]
上一篇 下一篇

猜你喜欢

热点阅读