位置: IT常识 - 正文

TS中快速定义一个对象数组以及处理async await的异常(ts中如何定义一个数组)

编辑:rootadmin
TS中快速定义一个对象数组以及处理async await的异常

推荐整理分享TS中快速定义一个对象数组以及处理async await的异常(ts中如何定义一个数组),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:ts中的keyof,ts中的typeof,ts自定义类型,ts中如何定义一个数组,ts怎么设置快捷键,ts自定义类型,ts中如何定义一个数组,ts中declare,内容如对您有帮助,希望把文章链接给更多的朋友!

定义一个对象数组(即数组成员为对象,对象的属性为我们所约束)

方法一:接口字面量形式

export type Resource= {_id: string,personID: { _id: string age: string identifier: string name: string nation: string grade: string schemeNum: string organ: string sex: string}gaintestPoint:stringlooktestPoint:string[]viocetsetPoint:stringgameReview:stringAddvice:string }export type ResourceArray =Resource[]

 方法二:数组泛型字面量形式

export type ReArray=Array<{_id: string,personID: { _id: string age: string identifier: string name: string nation: string grade: string schemeNum: string organ: string sex: string}gaintestPoint:stringlooktestPoint:string[]viocetsetPoint:stringgameReview:stringAddvice:string }>

或者你也可以这么写

索引签名的方式不能被推断为一个数组,因此不能用来约束数据

这是一种比较常见的约束数据的接口定义

// * 请求响应参数(不包含data)export interface Result {resp_code: string;msg: string;status_code: 200}// * 请求响应参数(包含data)export interface ResultData<T = any> extends Result {data: T;}TS中快速定义一个对象数组以及处理async await的异常(ts中如何定义一个数组)

 接下来我们请求数据可能会这样写,这是一种严格的数据约束,包括定义响应式数组push接口数据,如果这里没有传入泛型则会报错

let result = reactive<ReArray>([])const getResult = async () => { const { data } = await http.get<ResultData<ReArray>>('/user/getpoints') result.length = 0 result.push(...data )}

但这里我们没法处理接口报错的情况,比较常规的写法是try catch 这是一直非常啰嗦的写法,让我们的代码变丑,一种比较优雅的形式是引入await-to-js 

安装命令  npm i await-to-js --save

使用

import to from 'await-to-js';

接下来我们的写法就变成

let result = reactive<ReArray>([])const getResult = async () => {const [err,res] =await to<ResultData<Resource[]>>(http.get('/user/getpoints')) const {data} = resresult.push(...data )}

但这里事实上ts会帮我们类型推导出data有可能不存在

 这时候我们可以使用非空断言!

这样就不会报错了 

to返回的是一个数组

我们可以在if语句里判断err是否存在,从在再去处理逻辑

本文链接地址:https://www.jiuchutong.com/zhishi/297545.html 转载请保留说明!

上一篇:目标检测算法——YOLOv7改进|增加小目标检测层(目标检测算法有哪些)

下一篇:MATLAB与图像处理的那点小事儿~(matlab用于图像处理)

  • 微信营销怎样做?(微信营销怎么做步骤)

    微信营销怎样做?(微信营销怎么做步骤)

  • 花呗全额还款在哪里(花呗全额还清怎么还)

    花呗全额还款在哪里(花呗全额还清怎么还)

  • 设置替用外貌是两个面容吗(设置替用外貌是口罩解锁吗)

    设置替用外貌是两个面容吗(设置替用外貌是口罩解锁吗)

  • 微信星标朋友的作用是什么(微信星标朋友的顺序为什么会变)

    微信星标朋友的作用是什么(微信星标朋友的顺序为什么会变)

  • qq怎么设置留言板别人看不到(qq怎么设置留言板权限)

    qq怎么设置留言板别人看不到(qq怎么设置留言板权限)

  • 什么叫电子照片(什么叫电子照片格式)

    什么叫电子照片(什么叫电子照片格式)

  • 华为售后贴膜免费吗(华为售后贴膜免费贴几年)

    华为售后贴膜免费吗(华为售后贴膜免费贴几年)

  • 微信怎么取消发送(微信怎么取消发送视频)

    微信怎么取消发送(微信怎么取消发送视频)

  • 苹果听筒进水了有杂音(苹果听筒进水了有杂音保修吗)

    苹果听筒进水了有杂音(苹果听筒进水了有杂音保修吗)

  • 文档上传超出限制是什么意思(文档上传超出限制)

    文档上传超出限制是什么意思(文档上传超出限制)

  • oppor9能不能设置打电话就录音(oppor9怎么设置)

    oppor9能不能设置打电话就录音(oppor9怎么设置)

  • 电脑可以下载哔哩哔哩吗(电脑可以下载哔站吗)

    电脑可以下载哔哩哔哩吗(电脑可以下载哔站吗)

  • vivox30与vivonex3的区别(vivox30和nex3对比)

    vivox30与vivonex3的区别(vivox30和nex3对比)

  • 天猫帮助中心怎么进入(天猫app帮助中心在哪里)

    天猫帮助中心怎么进入(天猫app帮助中心在哪里)

  • 手机网易云怎么发动态(手机网易云怎么上传云盘)

    手机网易云怎么发动态(手机网易云怎么上传云盘)

  • 抖音怎么更换绑定的手机号(抖音怎么更换绑定手机号)

    抖音怎么更换绑定的手机号(抖音怎么更换绑定手机号)

  • pr怎么添加动态字幕(pr怎么添加动态字幕一个一个字出)

    pr怎么添加动态字幕(pr怎么添加动态字幕一个一个字出)

  • vivo怎样删除云备份照片(vivo怎样删除云服务里的东西)

    vivo怎样删除云备份照片(vivo怎样删除云服务里的东西)

  • 为什么pr导出视频变绿(为什么pr导出视频只有一秒)

    为什么pr导出视频变绿(为什么pr导出视频只有一秒)

  • 微信转账需要对方确认吗(微信转账需要对方接受吗)

    微信转账需要对方确认吗(微信转账需要对方接受吗)

  • maya属性编辑器在哪里(maya属性编辑器旁边的不见了)

    maya属性编辑器在哪里(maya属性编辑器旁边的不见了)

  • 抖音里喜欢的作品怎么批量删除(抖音里喜欢的作品别人能看到吗)

    抖音里喜欢的作品怎么批量删除(抖音里喜欢的作品别人能看到吗)

  • 如何设计电影海报(电影海报设计ps步骤)

    如何设计电影海报(电影海报设计ps步骤)

  • 手机屏幕老是旋转怎么办(手机屏幕老是旋转是怎么回事)

    手机屏幕老是旋转怎么办(手机屏幕老是旋转是怎么回事)

  • 微软Win11如何打开DX诊断?Win11 DirectX 诊断工具打开方法(windows 11怎么用)

    微软Win11如何打开DX诊断?Win11 DirectX 诊断工具打开方法(windows 11怎么用)

  • 滴水观音的养殖方法和注意事项(滴水观音的养殖方法选好浇水)

    滴水观音的养殖方法和注意事项(滴水观音的养殖方法选好浇水)

  • 工资薪金税前扣除标准是14%吗
  • 期末留抵税额是怎么产生的
  • 商会费用会计分录
  • 增值税留抵抵欠税政策解读
  • 当年亏损额为什么不能填?
  • 预缴所得税年底怎么结转
  • 固定资产折旧准予扣除是什么意思
  • 兼职劳务税率是多少2020
  • 申报工资总额填错了
  • 减免的附加税怎么做会计分录
  • 金税盘开具电子发票后如何保存电子版
  • 支付刻制公司印章费
  • 外商投资企业所得税法第八条
  • 展厅门口如何布置图片
  • 无法读取金税盘时间版本怎么解决
  • 母公司向全资子公司增资
  • 广告费扣除年限
  • 白酒五行属火还是水
  • 个体户核税怎么核
  • 产品的销售收入减去全部生产成本叫
  • 重装系统出现无效签名
  • 怎么激活win10密钥
  • 新版edge浏览器兼容模式怎么设置
  • macos monterey支持哪些显卡
  • 企业奠基费用如何入账
  • Win10 Build 21354 太阳谷ISO镜像版体验报告 含下载地址
  • linux怎么查找
  • iphone和电脑同步
  • 公众号采集文章手机操作
  • 最新cpu天梯表
  • php 生成opcode
  • w10系统有线连接网络
  • linux chcon命令
  • 如何弥补以前年假的问题
  • 股份有限公司向股东借款
  • 捐赠支出税前扣除条件
  • 看望员工生病的家属支付现金如何入账
  • zendstudio写好程序怎样运行
  • php如何实现登录和注册
  • vue父组件如何调用子组件的方法组合式api
  • 大学生web前端期刊有哪些
  • 若依框架前端改造
  • 前后端分离项目部署到服务器
  • php使用curl
  • 上月未记账,本月不能记账
  • 员工的交通费发票可以报销嘛
  • 帝国cms如何搭建的
  • 小微企业所得税优惠政策最新2023
  • 公司收到待报解预算收入在哪里查具体情况
  • 销售费用期末余额
  • 什么是财产行为税举例
  • 增值税一般纳税人登记表在哪里找
  • 财产租赁合同印花税率多少
  • 收到政府补贴现金流
  • 建筑企业外经证需要准备什么资料
  • 可供出售债权投资
  • 工会经费的减除项是什么
  • 债务重组的适用范围
  • sql server数据库文件的扩展名是
  • mysql教程入门
  • linux系统密码设置
  • freebsd版本选择
  • linux w
  • ps到底怎么用
  • cocos2dx适配
  • cocos2dx开发的游戏
  • 在vs中搭建opengl环境
  • 动作
  • unity配置安卓sdk
  • javascript解决了什么问题
  • java线程池创建
  • jquery操作元素的方法
  • javascript+
  • python *.py
  • 事业编税务局
  • 环保税按次申报需要交滞纳金吗
  • 企业自建厂房在建工程会计账务处理
  • 重庆国税网上怎么申报
  • 江苏电子税务局网址
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设