Эх сурвалжийг харах

chore: 增强 util-formatDate ts 类型提示 (#6886)

* feat: 为 auth layout 添加 slot: logo, 提升组件的灵活性和可复用性

* feat: 增强 util-formatDate ts 类型提示
Utopia 7 сар өмнө
parent
commit
6bbe523f6f

+ 15 - 3
packages/@core/base/shared/src/utils/date.ts

@@ -7,7 +7,19 @@ dayjs.extend(timezone);
 
 type FormatDate = Date | dayjs.Dayjs | number | string;
 
-export function formatDate(time: FormatDate, format = 'YYYY-MM-DD') {
+type Format =
+  | 'HH'
+  | 'HH:mm'
+  | 'HH:mm:ss'
+  | 'YYYY'
+  | 'YYYY-MM'
+  | 'YYYY-MM-DD'
+  | 'YYYY-MM-DD HH'
+  | 'YYYY-MM-DD HH:mm'
+  | 'YYYY-MM-DD HH:mm:ss'
+  | (string & {});
+
+export function formatDate(time?: FormatDate, format: Format = 'YYYY-MM-DD') {
   try {
     const date = dayjs.isDayjs(time) ? time : dayjs(time);
     if (!date.isValid()) {
@@ -16,11 +28,11 @@ export function formatDate(time: FormatDate, format = 'YYYY-MM-DD') {
     return date.tz().format(format);
   } catch (error) {
     console.error(`Error formatting date: ${error}`);
-    return String(time);
+    return String(time ?? '');
   }
 }
 
-export function formatDateTime(time: FormatDate) {
+export function formatDateTime(time?: FormatDate) {
   return formatDate(time, 'YYYY-MM-DD HH:mm:ss');
 }