CancelToken, Cancel 类型不正确

来源:10-3 -3 取消功能的设计和实现 - Cancel 类的实现及 axios 的扩展+ 额外逻辑实现

paopaomo

2020-08-03

Hi, 老师,编辑器提示axios.CancelToken 和 axios.Cancel 类型不正确,不知道为什么,麻烦老师帮忙解答下

编辑器提示
图片描述
图片描述
图片描述

对应的接口声明

图片描述
图片描述
图片描述
图片描述

typescript 版本号
图片描述

总觉得是把 Canel 类当成接口书写的问题,但是看了文档,类是可以当做接口使用的,所以,就不大明白这个报错是什么了

import { Canceler, CancelExecutor, CancelTokenSource } from '../types';
import Cancel from './Cancel';

interface ResolvePromise {
  (reason?: Cancel): void;
}

export default class CancelToken {
  promise: Promise<Cancel>;
  reason?: Cancel;

  constructor(executor: CancelExecutor) {
    let resolvePromise: ResolvePromise;

    this.promise = new Promise<Cancel>(resolve => {
      resolvePromise = resolve;
    });

    executor(message => {
      if (this.reason) {
        return;
      }
      this.reason = new Cancel(message);
      resolvePromise(this.reason);
    });
  }

  static source(): CancelTokenSource {
    let cancel!: Canceler;
    const token = new CancelToken(c => {
      cancel = c;
    });
    return {
      token,
      cancel
    };
  }

  throwIfRequested() {
    if (this.reason) {
      throw this.reason;
    }
  }
}

麻烦老师啦

写回答

2回答

ustbhuangyi

2020-08-05

//img1.sycdn.imooc.com/szimg/5f2a66ab09f432c109680254.jpg
拼写错误,低级错误喔

0
1
paopaomo
哎呀,看了好久,怎么自己就是看不出来这么低级的错误,麻烦老师了,谢谢~
2020-08-06
共1条回复

ustbhuangyi

2020-08-04

你把代码传到 GitHub 上,我抽空帮你看看

0
1
paopaomo
github 地址: git@github.com:paopaomo/ts-axios.git 谢谢老师
2020-08-04
共1条回复

下一代前端开发语言 TypeScript从零重构axios

课程从零开始重构功能完整的JS库,是学习造轮子的不二之选!

2631 学习 · 877 问题

查看课程