【发布时间】:2022-07-13 00:43:29
【问题描述】:
我这里有一段代码 getIsoDate 可以完全按照我的意愿工作。但后来我需要将它作为一个参数进一步传递,而不是像现在这样的三个参数(日、月、年)。 这就是为什么我得到错误 - 预期 3 个参数,但得到 1.ts(2554)
因此,为了消除错误,我需要重建 getIsoDate 它有一个参数但功能相同,我正在努力理解如何实现这一点,摆脱日、月、年并只使用一个值?还是有其他方法?你能给我一个提示或提示如何开始吗?
const getIsoDate = (day: string, month: string, year: string) => {
if (day && year && month && parseInt(year) > 999)
return new Date(`${year}-${month}-${day}T12:00:00`).toISOString();
else if (!day && !month && (!year || parseInt(year) < 1000)) return undefined;
else return "Invalid Date";
【问题讨论】:
-
单个参数的含义是什么?它如何定义日期?
-
一个论点是什么?一个东西?您需要两个版本,例如,一个对象或三个参数?
-
我有三个具有字符串类型的参数,我只需要传递一个参数,例如 fullDate 作为字符串。
-
@Figario JS/TS 不擅长以这种方式重载函数。 可行 (a) 将
month/year标记为可选,并且 (b) 检查day以猜测您想要哪种形式 - 这不利于某些 TS 优势。
标签: javascript typescript