You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dayjs对象的TypeScript类型是什么?Ant Design日期选择器类型适配

正确的TypeScript类型定义方案

你需要使用Dayjs官方导出的Dayjs类型,结合null来定义状态类型,具体操作如下:

  1. 先确保正确导入Dayjs及其类型:
import dayjs, { Dayjs } from 'dayjs';
  1. 修改状态的类型声明:
const [now, setNow] = useState<Dayjs | null>(null);

为什么null | typeof dayjs()不生效?

typeof dayjs()返回的是宽泛的object类型,无法识别Dayjs实例特有的方法(比如format()、add())和属性,TypeScript无法提供准确的类型提示与校验。而官方导出的Dayjs是专门为Dayjs实例设计的接口,能完整覆盖实例的类型信息。

适配Ant Design DatePicker的补充说明

如果是在Ant Design的DatePicker组件中使用该状态,组件的受控值类型本身就是Dayjs | null,两者类型完全匹配,不会出现类型不兼容的问题。

修改后的完整示例代码:

import { useState } from 'react';
import dayjs, { Dayjs } from 'dayjs';

function Demo() {
  const [now, setNow] = useState<Dayjs | null>(null);

  return (
    <div>
      <p>{now ? now.format('YYYY-MM-DD HH:mm:ss') : 'null'}</p>
      <button onClick={() => setNow(dayjs())}>Update Time</button>
    </div>
  );
}

内容的提问来源于stack exchange,提问作者user20002028

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 14:30:58