带你读《现代TypeScript高级教程》十七、TypeScript封装Fetch(1)

简介: 带你读《现代TypeScript高级教程》十七、TypeScript封装Fetch(1)

十七、TypeScript封装Fetch

1. 安装与配置TypeScript

首先,你的电脑上安装TypeScript。在命令行中输入以下命令:

npm install -g typescript

 

在你的项目根目录中,生成一个 tsconfig.json 文件来配置TypeScript的编译选项。在命令行中输入以下命令:

 

tsc --init

 

编辑 tsconfig.json 文件。这个文件配置了TypeScript的编译选项。确保以下设置已经开启:

{
  "compilerOptions": {
    "target": "ES2015",
    "module": "commonjs",
    "strict": true
  }}

2. 创建Fetch服务

src文件夹中创建一个新的 FetchService.ts 文件。我们将在这个文件中封装fetch API: 当然,下面我们会将put和delete方法也添加到我们的FetchService中:

 

export class FetchService {
  async get(url: string): Promise {
    const response = await fetch(url);
    if (!response.ok) {
      throw new Error(response.statusText);
    }
    const data: T = await response.json();
    return data;
  }
  async post(url: string, body: any): Promise {
    const response = await fetch(url, {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: JSON.stringify(body)
    });
    if (!response.ok) {
      throw new Error(response.statusText);
    }
    const data: T = await response.json();
    return data;
  }
  async put(url: string, body: any): Promise {
    const response = await fetch(url, {
      method: 'PUT',
      headers: {
        'Content-Type': 'application/json'
      },
      body: JSON.stringify(body)
    });
    if (!response.ok) {
      throw new Error(response.statusText);
    }
    const data: T = await response.json();
    return data;
  }
  async delete(url: string): Promise {
    const response = await fetch(url, {
      method: 'DELETE'
    });
    if (!response.ok) {
      throw new Error(response.statusText);
    }
    const data: T = await response.json();
    return data;
  }}

 

这样我们就成功地创建了一个FetchService类,它封装了 fetch API的 GET, POST, PUT DELETE 方法。每个方法都返回一个Promise,该Promise解析为一个泛型 T,这意味着你可以指定返回数据的类型。


带你读《现代TypeScript高级教程》十七、TypeScript封装Fetch(2)https://developer.aliyun.com/article/1348428?groupCode=tech_library

相关文章
|
30天前
|
JavaScript 前端开发 编译器
TypeScript教程(一)在vscode中的配置TypeScript环境
本文是一篇TypeScript入门教程,介绍了在VS Code中配置TypeScript环境的步骤,包括安装Node.js、使用npm安装TypeScript、配置npm镜像源、安装VS Code的TypeScript扩展,以及创建和运行一个简单的TypeScript "Hello World"程序。
TypeScript教程(一)在vscode中的配置TypeScript环境
|
30天前
|
资源调度 JavaScript 前端开发
TypeScript实战教程(一):表单上传与后端处理
本文是TypeScript实战教程的第一部分,介绍了使用TypeScript进行表单上传和后端处理的完整流程,包括环境配置、前端表单创建、使用TypeScript和Express框架搭建服务端、处理表单数据,并提供了详细的代码示例和运行测试方法。
TypeScript实战教程(一):表单上传与后端处理
|
2月前
|
JavaScript 前端开发 程序员
Typescript 【实用教程】(2024最新版)含类型声明,类型断言,函数,接口,泛型等
Typescript 【实用教程】(2024最新版)含类型声明,类型断言,函数,接口,泛型等
62 0
|
2月前
|
JavaScript API 数据处理
【Vue3+TypeScript】CRM系统项目搭建之 — Axiox 网络请求封装(二)
【Vue3+TypeScript】CRM系统项目搭建之 — Axiox 网络请求封装(二)
36 0
|
2月前
|
缓存 JSON 安全
【Vue3+TypeScript】CRM系统项目搭建之 — Axiox 网络请求封装(一)
【Vue3+TypeScript】CRM系统项目搭建之 — Axiox 网络请求封装(一)
31 0
|
3月前
|
JavaScript 编译器
35.【TypeScript 教程】编译选项
35.【TypeScript 教程】编译选项
35 2
|
3月前
|
JavaScript 编译器
33.【TypeScript 教程】命名空间
33.【TypeScript 教程】命名空间
34 2
|
3月前
|
JavaScript 前端开发
37.【TypeScript 教程】TSLint 与 ESLint
37.【TypeScript 教程】TSLint 与 ESLint
62 0
|
3月前
|
JavaScript 编译器 IDE
36.【TypeScript 教程】tsconfig.json 配置
36.【TypeScript 教程】tsconfig.json 配置
22 0
|
3月前
|
JavaScript 前端开发 编译器
34.【TypeScript 教程】声明合并
34.【TypeScript 教程】声明合并
28 0