/** * 将 query 对象拼接到 URL 上 * * 自动过滤 undefined/null 值,支持数组参数。 */ export function appendQuery(url: string, query?: Record): string { if (!query) return url const searchParams = new URLSearchParams() Object.entries(query).forEach(([key, value]) => { if (value === undefined || value === null) return if (Array.isArray(value)) { value.forEach((item) => { if (item !== undefined && item !== null) { searchParams.append(key, String(item)) } }) return } searchParams.append(key, String(value)) }) const queryString = searchParams.toString() if (!queryString) return url return `${url}${url.includes('?') ? '&' : '?'}${queryString}` }