新增工具函数
./src/helpers/util.ts
const toString = Object.prototype.toString
export function isDate(val: any): val is Date {
return toString.call(val) === '[object Date]'
}
export function isObject(val: any): val is Object {
return val !== null && typeof val !== 'object'
}
新增URL拼接方法
./src/helpers/url.ts
import { isDate, isObject } from './util'
function encode(val: string): string {
return encodeURIComponent(val)
.replace(/%40/g, '@')
.replace(/%3A/ig, ':')
.replace(/%24/g, '$')
.replace(/%2C/ig, ',')
.replace(/%20/g, '+')
.replace(/%5B/ig, '[')
.replace(/%5D/ig, ']')
}
export function buildURL(url: string, params?: any): string {
if (!params) {
return url
}
const parts: string[] = []
Object.keys(params).forEach(key => {
const val = params[key]
if (val === null || typeof val === 'undefined') {

这篇博客介绍了如何从零开始用TypeScript实现axios的基础功能,重点在于处理请求URL的参数。通过新增工具函数和URL拼接方法,详细阐述了URL参数处理逻辑,并提供了测试案例进行验证。
最低0.47元/天 解锁文章
940

被折叠的 条评论
为什么被折叠?



