time
在上面的函数isDate()
中,我正在检查输入是否为有效的Date对象。如果有效,它将返回传递的Date的字符串版本。如果无效,它将返回当前日期的字符串版本。
new Date()
的问题在于,它将对输入值new Date(undefined))
和!isNaN()
返回true。为了避免这种情况,我使用了!isNaN( new Date(undefined) )
,在Date
的情况下返回false。
现在的问题是打字稿不允许我将isNaN
对象传递给TS2345: Argument of type 'Date' is not assignable to parameter of type 'number'.
函数。
错误
String.prototype
有什么建议吗?
答案 0 :(得分:0)
那可能是因为您想在函数time()中传递数字,所以数字不能转换为日期。
isObjectClass和isDate有点用,现在已经检查了参数的类型。
答案 1 :(得分:0)
您可以按以下方式将此日期对象转换为时间(!isNaN(time.getTime()))
const time = (time: Date): string => {
return ((isDate(time) && !isNaN(time.getTime())) ? time : new Date()).toISOString();
};
在这里,getTime方法返回相应日期对象的数值。因此您可以轻松地将此数字值与isNaN一起使用