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

在TypeScript中无法使用new Date()——TS2554错误:期望传入1-2个参数,但实际传入0个

解决TypeScript中使用<Date>组件的TS2554错误

你遇到的这个TS2554错误,问题根源不是原生JavaScript的Date对象,而是你误用了一个名为<Date>的React组件(大概率是UI库组件或自定义组件),导致TypeScript检测到参数不匹配。

错误原因拆解

错误提示Expected 1-2 arguments, but got 0. TS2554直接指向<Date variant="body2">这一行,说明这个<Date>组件要求传入1-2个必填属性,但你目前只传了variant="body2",缺少它需要的核心参数。

具体修复方案

根据常见场景分两种情况处理:

情况1:误把UI文本组件写成了Date

如果你是想用Material UI这类库的文本展示组件(支持variant属性的文本组件),那你大概率是把Typography写成了Date——Material UI并没有内置名为Date的组件。只需要修正组件名称即可:

<Typography variant="body2">on {format(new Date(), 'dd/MM/yyyy')}</Typography>

情况2:这是你自定义的Date组件

如果这个<Date>是你自己封装的组件,那你需要查看它的类型定义文件,确认必填props是什么。比如多数自定义日期组件会要求传入value属性接收日期值,你可以补充上:

// 假设自定义Date组件需要value作为必填属性
<Date variant="body2" value={new Date()}>on {format(new Date(), 'dd/MM/yyyy')}</Date>

额外验证点

别忘了确认format函数的导入是否正确(比如来自date-fns或其他日期处理库),避免这部分出问题:

// date-fns的导入示例
import { format } from 'date-fns';

// 如果用moment.js,写法要调整
import moment from 'moment';
// 对应format写法:moment(new Date()).format('dd/MM/yyyy')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 10:12:43