首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >react-datetime with typescript TS2769错误

react-datetime with typescript TS2769错误
EN

Stack Overflow用户
提问于 2019-10-25 04:16:53
回答 1查看 617关注 0票数 1

我正在使用react-datetime和一个react typescript项目。我得到了TS2769编译错误“

代码语言:javascript
复制
      TS2769: No overload matches this call.
  Overload 1 of 2, '(props: Readonly<DatetimepickerProps>): ReactDatetimeClass', gave the following error.
    Type '(inputDate: Moment) => void' is not assignable to type 'EventOrValueHandler<ChangeEvent<any>>'.
      Types of parameters 'inputDate' and 'event' are incompatible.
        Type 'string | Moment | ChangeEvent<any>' is not assignable to type 'Moment'.
          Type 'string' is not assignable to type 'Moment'.
  Overload 2 of 2, '(props: DatetimepickerProps, context?: any): ReactDatetimeClass', gave the following error.
    Type '(inputDate: Moment) => void' is not assignable to type 'EventOrValueHandler<ChangeEvent<any>>'.

以下是我的代码:

代码语言:javascript
复制
...

handleDateChange(inputdate: moment.Moment) {
    ....
}

<DateTime
 timeFormat={false}
 viewMode="days"
 closeOnSelect
 closeOnTab
 required
 onChange={this.handleDateChange}
/>

我不确定如何正确声明类型以使其进行编译。有人能帮上忙吗?

EN

回答 1

Stack Overflow用户

发布于 2020-03-20 03:14:33

您的问题是您的handleDateChange不符合onChange的要求:

代码语言:javascript
复制
onChange?: EventOrValueHandler<ChangeEvent<any>>;

它的类型是:

代码语言:javascript
复制
type EventOrValueHandler<Event> = (event: Event | Moment | string) => void;

如果你更新你的函数来适应这一点,你应该是很好的。例如:

代码语言:javascript
复制
<Datetime
    timeFormat={false}
    viewMode="days"
    closeOnSelect
    onChange={
      (value: ChangeEvent | Moment | string) => {
        if ((value) && value as Moment)
          console.log("Do something with moment")
      }
    }
/>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58548597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档