Skip to content

Function: isDateObjectUnits()

ts
function isDateObjectUnits(value: unknown): value is DateObjectUnits;

Type guard to check if a value is a valid Luxon DateObjectUnits object.

This function validates that the input is a plain object containing only valid Luxon date/time unit properties with numeric values. It ensures type safety when working with objects that should represent date/time units for Luxon operations.

Parameters

ParameterTypeDescription
valueunknownThe value to check for DateObjectUnits compatibility

Returns

value is DateObjectUnits

True if the value is a valid DateObjectUnits object, false otherwise

Example

typescript
// Valid DateObjectUnits objects
const validUnits1 = { year: 2023, month: 12, day: 25 };
const validUnits2 = { hour: 14, minute: 30, second: 45 };
const validUnits3 = { weekYear: 2023, weekNumber: 52 };

console.log(isDateObjectUnits(validUnits1)); // true
console.log(isDateObjectUnits(validUnits2)); // true
console.log(isDateObjectUnits(validUnits3)); // true

// Invalid cases
console.log(isDateObjectUnits({})); // false (empty object)
console.log(isDateObjectUnits({ year: "2023" })); // false (string value)
console.log(isDateObjectUnits({ invalid: 123 })); // false (invalid property)
console.log(isDateObjectUnits(null)); // false
console.log(isDateObjectUnits([])); // false

Remarks

The function validates against all supported Luxon DateObjectUnits properties:

  • Time units: year, month, day, ordinal
  • Week-based units: weekYear, localWeekYear, weekNumber, localWeekNumber, weekday, localWeekday
  • Time of day units: hour, minute, second, millisecond

All property values must be numbers or undefined. The object must contain at least one property.