// 使用联合类型定义参数类型
function formatDate(date: string | Date): string {
let d: Date;
if (typeof date ==='string') {
d = new Date(date);
} else {
d = date;
}
const year = d.getFullYear();
const month = String(d.getMonth() + 1).padStart(2, '0');
const day = String(d.getDate()).padStart(2, '0');
return `${year}年${month}月${day}日`;
}
// 使用交叉类型添加公共属性
interface WithTimezone {
timezone: string;
}
function formatDateWithTimezone(date: (string & WithTimezone) | (Date & WithTimezone)): string {
let d: Date;
if (typeof date ==='string') {
d = new Date(date);
} else {
d = date;
}
const year = d.getFullYear();
const month = String(d.getMonth() + 1).padStart(2, '0');
const day = String(d.getDate()).padStart(2, '0');
return `${year}年${month}月${day}日`;
}