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

  • 苹果手机怎么看系统版本号(苹果手机怎么看内存空间)

    苹果手机怎么看系统版本号(苹果手机怎么看内存空间)

  • 小红书注销账号别人还能看吗(小红书注销账号后可以再用同一个手机申请吗)

    小红书注销账号别人还能看吗(小红书注销账号后可以再用同一个手机申请吗)

  • zip格式转rar格式(zip格式转换rar)

    zip格式转rar格式(zip格式转换rar)

  • 小红书看直播的操作方式是什么(小红书直播的优缺点)

    小红书看直播的操作方式是什么(小红书直播的优缺点)

  • 抖音5万播放量算热门吗(抖音5万播放量才100个赞)

    抖音5万播放量算热门吗(抖音5万播放量才100个赞)

  • 苹果11pro是高通基带吗(iphone11promax是高刷吗)

    苹果11pro是高通基带吗(iphone11promax是高刷吗)

  • 苹果蓝牙耳机有一个不充电了(苹果蓝牙耳机有定位功能吗)

    苹果蓝牙耳机有一个不充电了(苹果蓝牙耳机有定位功能吗)

  • 麦克风和耳机唱歌区别(麦克风和耳机唱歌一样吗)

    麦克风和耳机唱歌区别(麦克风和耳机唱歌一样吗)

  • excel文档主要功能包括(excel的主要功能和特点是什么)

    excel文档主要功能包括(excel的主要功能和特点是什么)

  • vivo手机换卡怎么换(vivo手机换卡怎么换视频)

    vivo手机换卡怎么换(vivo手机换卡怎么换视频)

  • oppo reno ace是曲面屏吗 (opporenoace是曲面屏吗)

    oppo reno ace是曲面屏吗 (opporenoace是曲面屏吗)

  • nec是什么牌子的电脑(nec是什么牌子的电动车)

    nec是什么牌子的电脑(nec是什么牌子的电动车)

  • 笔记本长期插电源对电池有影响么(笔记本长期插电源使用好吗)

    笔记本长期插电源对电池有影响么(笔记本长期插电源使用好吗)

  • 抖音号怎么退出(抖音号怎么退出登录)

    抖音号怎么退出(抖音号怎么退出登录)

  • 怎么看以前开过的情侣空间(怎么看以前开过情侣空间的历史记录)

    怎么看以前开过的情侣空间(怎么看以前开过情侣空间的历史记录)

  • wps高级选项在哪里(wps中高级选项在哪里)

    wps高级选项在哪里(wps中高级选项在哪里)

  • 新版qq小耳朵是什么(新版qq小耳朵是什么意思)

    新版qq小耳朵是什么(新版qq小耳朵是什么意思)

  • 小米摄像机399,199区别(小米摄像机云台版看不了回放)

    小米摄像机399,199区别(小米摄像机云台版看不了回放)

  • oppor11桌面布局设置(oppor11s桌面布局设置)

    oppor11桌面布局设置(oppor11s桌面布局设置)

  • 百度小程序如何制作(百度小程序如何关闭)

    百度小程序如何制作(百度小程序如何关闭)

  • Win11 全新右键菜单获开发者支持,WinRAR 已完成适配:无须再忍受二级菜单(win11 桌面右键)

    Win11 全新右键菜单获开发者支持,WinRAR 已完成适配:无须再忍受二级菜单(win11 桌面右键)

  • 使用Python创建简单的HTTP服务器(python中如何创建一个对象)

    使用Python创建简单的HTTP服务器(python中如何创建一个对象)

  • 企业计提印花税会计处理
  • 运输费劳务是否可以扣除
  • 个人社保部分公司承担可以入费用吗
  • 停车费定额发票税率
  • 股东分红需要开股东会决定吗?
  • 独立核算和非独立核算由谁定
  • 大病医疗可以抵扣吗
  • 中外合资经营企业的经营期限
  • 加油站的成品油许可证变更过后有什么风险
  • 增值税金内部结算方式
  • 以前年度应付款确认不再支付应调整到哪个科目?
  • 网吧卖出那些零食怎么卖
  • 企业期货投资收益何时记账的
  • 融资租入固定资产
  • 预收账款多了好还是少了好
  • 一般纳税人增值税申报操作流程
  • 城市维护建设税减免税优惠政策
  • 通用机打发票什么样子
  • 税控盘基本信息设置
  • 职工报销费用的处理流程
  • 注册会计师考点分析
  • 增值税影不影响企业利润
  • 总公司签订合同发票开具给分公司是否可以抵扣
  • 购买库存商品收到发票怎样做分录
  • 出口货物专用发票图片
  • 银行借款利息支出可以税前扣除吗
  • 电子商业汇票背书是什么意思
  • linux如何用root用户登录
  • 收到预付卡发票分录
  • php 语法
  • 图解在OS X中管理窗口大小的多种方法
  • 开始菜单中的磁贴是什么
  • 转让二手设备如何交易
  • 小米路由器599元
  • php安装扩展fileinfo
  • 用php做计算
  • 无私有住房证明怎么开
  • PHP:imagecolorat()的用法_GD库图像处理函数
  • 木质家具出口
  • php excel导入数据
  • 出售银行承兑汇票
  • redirect_uri参数错误的解决方法(必看)
  • PHP基于什么语言
  • 爱丽丝小镇在哪
  • 脱不下孔乙己的长衫对应下一句
  • apdl命令流手册下载
  • 增值税纳税申报表怎么填
  • 进项税加计抵减最新政策2023
  • 发生售后维修领用材料分录
  • mac安装brew
  • 织梦添加文章如何修改高级参数
  • 试用产品的账务处理分录
  • 不符合无形资产摊销条件
  • sql server 2008有什么用
  • 外经证办好了后怎么开票
  • 以前年度损益调整科目编码是多少
  • 检测费账务处理
  • 内部损益是什么
  • 可以先抵扣下个月工资吗
  • 营改增 交通运输
  • 其他应付款社保借方余额怎么处理
  • 职工福利费扣除税率
  • 摊余成本通俗
  • mysql error0
  • 让Windows Server 2008设备驱动安装图文教程
  • ubuntu常用的50个命令
  • freebsd 升级
  • vc运行程序exe停止工作怎么办
  • centos安装问题
  • 浅析学校德育的个体智能发展功能
  • Begin OpenGL with Python-1st Day,draw a simple sample.
  • JavaScript中的变量名不区分大小写
  • 手机gpu过度绘制
  • jquery防止重复提交
  • 深入理解计算机系统 电子书
  • Unity3D游戏开发毕业论文
  • 如何查询以前月份发票超限量的申请
  • 豪车超过多少钱要多加税
  • 怎样从增值税发票查询
  • 福建电子税务局社保缴费操作
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设