基于 TS 实现 axios(六)

本文档详细介绍了如何在 TypeScript 中实现 axios 的配置,包括默认配置的设定、transformRequest 和 transformResponse 的处理以及 axios.create API 的创建。内容涵盖配置合并策略、深拷贝实现以及各个配置部分的具体操作。
摘要由CSDN通过智能技术生成

这一章主要实现一些配置化,让用户可以进行配置

  • 默认配置
  • transformRequest 和 transformResponse
  • axios.create API

目录:

在这里插入图片描述

默认配置

添加 defaults.ts

import {AxiosRequestConfig} from './types';

const defaults: AxiosRequestConfig = {
    method: 'get',
    timeout: 0,
    headers:{
        common: {
            Accept: 'application/json, text/plain, */*',
        }
    },
}

const methodsNoData = ['delete','get','head','options'];

methodsNoData.forEach(method => {
    defaults.headers[method] = {}
})

const methodsWithData = ['post','put','patch'];

methodsWithData.forEach(method => {
    defaults.headers[method] = {
        'Content-Type': 'application/x-www-form-urlencoded',
    }
})
 
export default defaults;

这个文件主要是定义一些默认配置。

添加 core/mergeConfig.ts 文件

import { AxiosRequestConfig } from '../types';
import { isPlainObject,deepMerge } from '../helpers/util';

const strats = Object.create(null);

function defaultStart(val1:any,val2:any):any {
    return typeof(val2) !== 'undefined' ? val2: val1;
}
function formval2Start(val1:any,val2:any):any {
    if(typeof val2 !== 'undefined') {
        return val2;
    }
}

function deepMergeStrat(val1: any,val2:any): any {
    debugger;

    if(isPlainObject(val2)) {
        return deepMerge(val1,val2);
    } else if(typeof val2 !== 'undefined') {
        return val2
    } else if(isPlainObject(val1)) {
        return deepMerge(val1);
    } else if(typeof val1 !== 'undefined&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值