替换momentjs为dayjs时报错TypeError: (0 , _dayjs.Dayjs) is not a function如何解决
错误原因
你出现该报错的核心原因是Day.js的导入方式错误:
{ Dayjs }是Day.js提供的TypeScript类型声明,仅可用于类型标注场景,无法作为构造函数在运行时调用- 可执行的dayjs构造函数是库的默认导出项,不需要用大括号包裹导入
修复步骤
- 修正导入语句
将原有导入代码:
import { Dayjs } from 'dayjs'
替换为默认导入:
import dayjs from 'dayjs'
如果是TypeScript项目,需要用到Dayjs类型做标注,可以额外新增类型导入:
import dayjs from 'dayjs' import type { Dayjs } from 'dayjs' // 仅作为类型使用,运行时会被自动移除
- 修正调用代码
将原有调用大写Dayjs()的逻辑改为小写的默认导出构造函数:
const fullDateTimeFormat = 'YYYY-MM-DD HH:mm:ss:SSS'; const startOfCurrentMonth = dayjs().startOf("month").format(fullDateTimeFormat);
补充说明
该问题不需要额外做其他配置,修改完成后重新启动项目即可正常运行。如果需要兼容moment.js的更多功能,仅需按需引入Day.js对应的官方插件即可。
内容的提问来源于stack exchange,提问作者Dolphin
相关产品推荐
相关产品推荐

