gpt4 book ai didi

luxon - 如何检查 obj 是否属于 luxon 类型?

转载 作者:行者123 更新时间:2023-12-01 11:33:18 26 4
gpt4 key购买 nike

我正在为 Angular Material 编写日期适配器,如果提供的对象是 luxon DateTime,则需要一个返回 bool 值的函数。

像这样(从那一刻起):

isDateInstance(obj: any): boolean {
return moment.isMoment(obj);
}

到目前为止,我所拥有的是 - 这是否足够好?:
isDateInstance(obj: any): boolean {
try {
const luxonObject = DateTime.fromObject(obj);
return luxonObject.isValid;
} catch (error) {
return false;
}
}

最佳答案

我认为你的代码很好,我建议你可以使用原生 instanceof .

const DateTime = luxon.DateTime;

function isDateInstance(obj) {
return obj instanceof DateTime;
}

console.log( isDateInstance('') );
console.log( isDateInstance({}) );
console.log( isDateInstance(new Date()) );
console.log( isDateInstance(DateTime.local()) );
<script src="https://moment.github.io/luxon/global/luxon.min.js"></script>


编辑:

Luxon 已添加 isDateTime v.1.6.0 中的方法那

Check if an object is a DateTime. Works across context boundaries



所以更新的解决方案可以是以下内容:

const DateTime = luxon.DateTime;

function isDateInstance(obj) {
return DateTime.isDateTime(obj);
}

console.log( isDateInstance('') );
console.log( isDateInstance({}) );
console.log( isDateInstance(new Date()) );
console.log( isDateInstance(DateTime.local()) );
<script src="https://cdn.jsdelivr.net/npm/luxon@1.10.0/build/global/luxon.js"></script>


来自 v.1.6.0直到 v.1.8.3 isDateTime会给 undefined而不是 false由于 issue .

关于luxon - 如何检查 obj 是否属于 luxon 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50349290/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com