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

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

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


3. 使用FetchService类

import { FetchService } from './FetchService';
const fetchService = new FetchService();
// GET requestconst fetchData = async () => {
  try {
    const data = await fetchService.get<{ message: string }>('https://api.example.com/data');
    console.log(data.message);
  } catch (error) {
    console.error('An error occurred:', error);
  }}
// POST requestconst sendData = async () => {
  try {
    const data = await fetchService.post<{ message: string }>('https://api.example.com/data', {
      key: 'value'
    });
    console.log(data.message);
  } catch (error) {
    console.error('An error occurred:', error);
  }}
// PUT requestconst updateData = async () => {
  try {
    const data = await fetchService.put<{ message: string }>('https://api.example.com/data', {
      key: 'new-value'
    });
    console.log(data.message);
  } catch (error) {
    console.error('An error occurred:', error);
  }}
// DELETE requestconst deleteData = async () => {
  try {
    const data = await fetchService.delete<{ message: string }>('https://api.example.com/data');
    console.log(data.message);
  } catch (error) {
    console.error('An error occurred:', error);
  }}
fetchData();sendData();updateData();deleteData();

 

以上代码首先导入了我们创建的 FetchService 类,并实例化了一个新的 fetchService 对象。然后,我们定义了四个异步函数,每个函数都执行一个网络请求,并在请求成功时打印出返回数据中的 message 字段。这四个函数分别对应 GET, POST, PUT DELETE 请求。

 

我们使用了 <{ message: string }> 来指定返回数据的类型,这样我们就可以得到TypeScript的类型检查和自动补全功能。如果你的数据类型更复杂,你可以定义一个接口来描述它,然后在这里使用那个接口。

 

如果请求失败,我们在 catch 块中捕获错误并打印错误消息。如果服务器返回的HTTP状态码不是200-299,fetch API会认为请求成功,不会抛出错误。因此,我们在 FetchService 类的每个方法中都检查了 response.ok 属性,如果请求未成功,我们抛出一个包含状态文本的错误。


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

相关文章
|
20天前
|
JavaScript 前端开发
TypeScript【类型别名、泛型】超简洁教程!再也不用看臭又长的TypeScript文档了!
【10月更文挑战第11天】TypeScript【类型别名、泛型】超简洁教程!再也不用看臭又长的TypeScript文档了!
|
21天前
|
JavaScript 前端开发 Java
TypeScript【接口】超简洁教程!再也不用看臭又长的TypeScript文档了!
【10月更文挑战第10天】TypeScript【接口】超简洁教程!再也不用看臭又长的TypeScript文档了!
|
23天前
|
JavaScript 前端开发 安全
TypeScript【基础类型】超简洁教程!再也不用看臭又长的TypeScript文档了!
【10月更文挑战第9天】TypeScript【基础类型】超简洁教程!再也不用看臭又长的TypeScript文档了!
|
25天前
|
JavaScript 索引
TypeScript(TS)安装指南与基础教程学习全攻略(二)
TypeScript(TS)安装指南与基础教程学习全攻略(二)
48 0
|
25天前
|
JavaScript 前端开发 安全
TypeScript(TS)安装指南与基础教程学习全攻略(一)
TypeScript(TS)安装指南与基础教程学习全攻略(一)
26 0
|
3月前
|
JavaScript 前端开发 编译器
TypeScript教程(一)在vscode中的配置TypeScript环境
本文是一篇TypeScript入门教程,介绍了在VS Code中配置TypeScript环境的步骤,包括安装Node.js、使用npm安装TypeScript、配置npm镜像源、安装VS Code的TypeScript扩展,以及创建和运行一个简单的TypeScript "Hello World"程序。
TypeScript教程(一)在vscode中的配置TypeScript环境
|
3月前
|
资源调度 JavaScript 前端开发
TypeScript实战教程(一):表单上传与后端处理
本文是TypeScript实战教程的第一部分,介绍了使用TypeScript进行表单上传和后端处理的完整流程,包括环境配置、前端表单创建、使用TypeScript和Express框架搭建服务端、处理表单数据,并提供了详细的代码示例和运行测试方法。
TypeScript实战教程(一):表单上传与后端处理
|
2月前
|
JavaScript
typeScript进阶(9)_type类型别名
本文介绍了TypeScript中类型别名的概念和用法。类型别名使用`type`关键字定义,可以为现有类型起一个新的名字,使代码更加清晰易懂。文章通过具体示例展示了如何定义类型别名以及如何在函数中使用类型别名。
39 1
typeScript进阶(9)_type类型别名
|
25天前
|
JavaScript 前端开发 安全
深入理解TypeScript:增强JavaScript的类型安全性
【10月更文挑战第8天】深入理解TypeScript:增强JavaScript的类型安全性
41 0
|
25天前
|
JavaScript 前端开发 开发者
深入理解TypeScript:类型系统与实用技巧
【10月更文挑战第8天】深入理解TypeScript:类型系统与实用技巧