位置: 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用于图像处理)

  • 华为gt3pro怎么连接手机(华为gt3pro怎么连接新手机)

    华为gt3pro怎么连接手机(华为gt3pro怎么连接新手机)

  • i7 4500u什么水平(i7 4500y)

    i7 4500u什么水平(i7 4500y)

  • 红米k20发热正常吗(红米k20pro发烫)

    红米k20发热正常吗(红米k20pro发烫)

  • 三星I9100 Galaxy S2上市时间(三星折叠屏手机最新款2022)

    三星I9100 Galaxy S2上市时间(三星折叠屏手机最新款2022)

  • 微信如何自己建群(微信如何自己建表情包)

    微信如何自己建群(微信如何自己建表情包)

  • 抖音上不了热门怎么办(抖音上不了热门是不是该换号了)

    抖音上不了热门怎么办(抖音上不了热门是不是该换号了)

  • 微信支付人脸识别无法通过怎么办(微信支付人脸识别解除限制)

    微信支付人脸识别无法通过怎么办(微信支付人脸识别解除限制)

  • 显示5g就是5g吗(显示5g就是5g网络吗)

    显示5g就是5g吗(显示5g就是5g网络吗)

  • 苹果id不加86不能用(苹果id不用本机号码行不行)

    苹果id不加86不能用(苹果id不用本机号码行不行)

  • 剪映瘦脸功能在哪(剪映瘦脸功能在哪里找)

    剪映瘦脸功能在哪(剪映瘦脸功能在哪里找)

  • 台式电脑通过路由器无法上网 (台式电脑网络怎么连接线路)

    台式电脑通过路由器无法上网 (台式电脑网络怎么连接线路)

  • 小米10为什么只有一个摄像头有用(小米10为什么只有充电时才能换浅色模式)

    小米10为什么只有一个摄像头有用(小米10为什么只有充电时才能换浅色模式)

  • 恢复出厂设置相册还有吗(恢复出厂设置相当于刷机吗)

    恢复出厂设置相册还有吗(恢复出厂设置相当于刷机吗)

  • 微信账单删除了还能查到吗(微信账单删除了还能查到流水吗)

    微信账单删除了还能查到吗(微信账单删除了还能查到流水吗)

  • 怎么解除淘宝绑定的手机号(怎么解除淘宝绑定的菜鸟)

    怎么解除淘宝绑定的手机号(怎么解除淘宝绑定的菜鸟)

  • 淘宝人生账单在哪里进入(淘宝人生账单在哪里看2020)

    淘宝人生账单在哪里进入(淘宝人生账单在哪里看2020)

  • vivo手机内存卡插哪(vivo手机内存卡怎么使用)

    vivo手机内存卡插哪(vivo手机内存卡怎么使用)

  • qq音乐怎么收藏自己的歌单(QQ音乐怎么收藏MV)

    qq音乐怎么收藏自己的歌单(QQ音乐怎么收藏MV)

  • p30pro怎么使用超级夜景(p30 pro超广角怎么开)

    p30pro怎么使用超级夜景(p30 pro超广角怎么开)

  • 如何用手机设置路由器(如何用手机设置wifi密码)

    如何用手机设置路由器(如何用手机设置wifi密码)

  • iphone11有没有快充(iphone11有没有快捷指令)

    iphone11有没有快充(iphone11有没有快捷指令)

  • 瀑布屏和曲面屏有什么区别(瀑布屏和曲面屏买哪个)

    瀑布屏和曲面屏有什么区别(瀑布屏和曲面屏买哪个)

  • pcdm10是什么型号(型号pcdm10是什么意思)

    pcdm10是什么型号(型号pcdm10是什么意思)

  • cad图纸比例(cad图纸比例标准)

    cad图纸比例(cad图纸比例标准)

  • 爱奇艺如何缓存视频(爱奇艺如何缓存海贼王)

    爱奇艺如何缓存视频(爱奇艺如何缓存海贼王)

  • 如何安装电脑系统?有什么好的方法?(如何安装电脑系统win7电路连接)

    如何安装电脑系统?有什么好的方法?(如何安装电脑系统win7电路连接)

  • 剪切快捷键介绍(剪切快捷键ctrl加什么?)

    剪切快捷键介绍(剪切快捷键ctrl加什么?)

  • 增值税率和征收率
  • 房产税如何进行税源采集
  • 代收车船税如何计算
  • 房产公司企业所得税如何预征
  • 契税是什么意思契税是过户费吗
  • 公司内部个人股份怎么算
  • 收到个税手续费返还增值税税率
  • 厂区地面硬化属于土建还是市政
  • 所有者权益股东权益
  • 应收票据属于其他应收账款吗
  • 房地产开发企业销售自行开发的房地产项目
  • 股票投资收益是指投资者从购入股票开始到出售为止整
  • 固定资产账面价值公式
  • 个体工商户不经营会自动注销吗
  • 银行扣除的贴现利息怎么算
  • 向一般纳税人销售劳保专用物品
  • 主营业务收入怎么结转
  • 劳务派遣直接支付工资吗
  • 利润表里的营业税金及附加如何计算
  • 增值税申报尾差怎么做账
  • 红字发票是否需要盖发票章
  • 个人捐赠住房
  • 办理转移登记需要什么资料
  • 土地使用税和房产税
  • 车辆 以旧换新
  • 单位车辆车船税缴纳
  • 收到厂家商品的会计分录
  • php面向对象详解
  • 网络和共享中心在哪里打开
  • 进销存单据
  • mmtraylsi.exe是什么进程 有什么作用 mmtraylsi进程查询
  • Cusco Cathedral on the Plaza de Armas, Cusco, Peru (© sharptoyou/Shutterstock)
  • php实现文件上传下载
  • 视觉slam ba
  • WIN11系统CPU占用率高
  • Python如何将字符串转化为数字
  • 收到股东投资款现金流量表入哪一项
  • 劳动仲裁支付的赔偿金怎么入账
  • 用支票偿还货款
  • 跨年发票一般分为哪几类
  • 政府补贴需要还吗
  • 银行存款 会计科目
  • 固定资产的入账时间应该是什么时间
  • PostgreSQL教程(七):函数和操作符详解(3)
  • 暂估入库账务处理举例
  • 处置固定资产增值税收入与企业所得税收入不一致
  • 小规模纳税人申报步骤
  • 企业外购的软件叫什么
  • 施工项目部主要职责
  • 销售收入小于销售成本
  • 管理费用现金流量附表指定
  • 转入企业银行存款利息分录
  • 独立核算的生产车间是法律主体吗
  • 建账初期账务处理程序
  • 垫款报销
  • 定期存款放入哪个会计科目
  • 建筑装饰行业工业化道路研究参考文献
  • 商业银行存款业务规则
  • sqlserver 千万数量级分页存储过程代码
  • sql取两个时间的间隔天数
  • 提升英语
  • win8系统出现蓝屏怎样处理
  • linux 命令
  • alg.exe是什么程序
  • centos时间不同步的解决方法(centos时间同步)
  • Win7系统如何开启移动到文件夹选项
  • win10升级失败怎么办
  • 网络连接受限怎么处理win8
  • JavaScript浏览器打开
  • 场景切换方式
  • 微信小程序实现烟花
  • js的三种循环
  • android项目总结
  • python tornado django
  • 国税局税务大厅电话
  • 关于房地产企业所得税涉税处理表述正确的有
  • 所得税季度报表收入成本怎么填
  • 粮仓计算公式
  • 房子契税发票没给怎么办
  • 社保uk申请流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设