位置: 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 ecg)

    华为gt3pro支持心电图吗(华为gt3pro ecg)

  • 小米手机怎么修改应用图标(小米手机怎么修改锁屏密码)

    小米手机怎么修改应用图标(小米手机怎么修改锁屏密码)

  • xsmax是支持wifi6的吗

    xsmax是支持wifi6的吗

  • 华为p40耗电太快如何解决(华为p40耗电快需要关掉哪里)

    华为p40耗电太快如何解决(华为p40耗电快需要关掉哪里)

  • 小米手机怎么打开相册的保密库(小米手机怎么打开定位)

    小米手机怎么打开相册的保密库(小米手机怎么打开定位)

  • a59m是全网通手机吗(手机a59m)

    a59m是全网通手机吗(手机a59m)

  • 交叉网线和直连网线有什么区别(交叉网线和直连网线哪个更好)

    交叉网线和直连网线有什么区别(交叉网线和直连网线哪个更好)

  • 蓝牙耳机不出声音怎么回事(连接到蓝牙了但是蓝牙耳机不出声)

    蓝牙耳机不出声音怎么回事(连接到蓝牙了但是蓝牙耳机不出声)

  • 抖音显示未获得微信登录权限(抖音显示未获得权限怎么办)

    抖音显示未获得微信登录权限(抖音显示未获得权限怎么办)

  • 苹果6p声音太小怎么办(苹果6p声音太小怎么解决)

    苹果6p声音太小怎么办(苹果6p声音太小怎么解决)

  • 电脑桌面隐藏了怎么弄出来(电脑桌面隐藏了一个图标,怎么恢复)

    电脑桌面隐藏了怎么弄出来(电脑桌面隐藏了一个图标,怎么恢复)

  • 屏蔽qq好友消息对方知道吗(屏蔽qq好友消息能看到吗)

    屏蔽qq好友消息对方知道吗(屏蔽qq好友消息能看到吗)

  • 爱奇艺会员日期怎么算(爱奇艺会员日期在哪看)

    爱奇艺会员日期怎么算(爱奇艺会员日期在哪看)

  • 手机通讯录怎么删除(手机通讯录怎么恢复)

    手机通讯录怎么删除(手机通讯录怎么恢复)

  • 手机ip地址是随便改吗(手机的ip地址会随着所在地改变吗)

    手机ip地址是随便改吗(手机的ip地址会随着所在地改变吗)

  • 拼多多频繁退货会怎样(拼多多频繁退货会怎么样)

    拼多多频繁退货会怎样(拼多多频繁退货会怎么样)

  • 苹果手机怎么看zip文件(苹果手机怎么看wifi密码显示)

    苹果手机怎么看zip文件(苹果手机怎么看wifi密码显示)

  • 快手怎么弄长腿瘦身(快手有没有超长腿特效)

    快手怎么弄长腿瘦身(快手有没有超长腿特效)

  • MorphVOX Pro变声器怎么调(变声器morphvox 实用的变声器)

    MorphVOX Pro变声器怎么调(变声器morphvox 实用的变声器)

  • 为什么快手播放量越来越少(为什么快手播放量上不去)

    为什么快手播放量越来越少(为什么快手播放量上不去)

  • 暴风影音如何旋转视频的方向(暴风影音如何旋转90度)

    暴风影音如何旋转视频的方向(暴风影音如何旋转90度)

  • 手机不支持红外遥控功能怎么办(手机不支持红外设备怎么开空调)

    手机不支持红外遥控功能怎么办(手机不支持红外设备怎么开空调)

  • 初级农产品免税原理
  • 一般纳税人企业所得税多久申报一次
  • 税后利润向股东分配股息
  • 息税前利润变动率的计算公式
  • 国际反避税措施
  • 销售商品款项未收的科目名称
  • 买二手设备还需要备案吗
  • 分支机构是否享受小微企业企业所得税优惠?
  • 行政单位上年度费用做多了怎么调整成本
  • 注销公司需要提供股东身份证吗
  • 房地产土地增值税的算法
  • 个税专项附加扣除
  • 车辆购置税多少?
  • 未到期责任准备金计算方法
  • 采购差价构成犯罪吗
  • 所有者权益变动表
  • 房租发票9%还是5%
  • 预提工程成本的会计分录
  • 未退还的保证金怎么处理
  • 劳务派遣用工工资标准
  • 给员工发放购物卡交个税吗
  • 工资上浮20%怎么算
  • 分次付息会计分录
  • 采购开票税率
  • 本期应付而未付工资挂账处理?
  • 公司面临清算,外包企业的员工怎么处理?
  • 路由器怎么设置2.4g网络
  • win10更新kb5005033
  • 广告公司的工程师好做吗
  • 总部资产的减值有什么特点
  • 售后租回融资租赁帐务处理怎么做?
  • 赔付支出有哪些
  • 库存现金日记账的登记依据
  • bit/ttagapp
  • 替票报销违法吗
  • 华为mate主题
  • css媒体查询不起作用
  • 技术服务费增值税税率1%
  • php headers
  • sql server如何操作
  • 财产租赁合同按金额的多少进行计税
  • sql2008还原
  • mysql多表左连接查询
  • 增值税发票红冲的相关规定
  • 个人所得税由单位还是个人缴纳
  • 应付账款账务处理中的错弊
  • 小规模未达起征点申报表怎么填
  • 收到社保稳岗补贴需要交税吗
  • 二手房交易需缴纳哪些费用
  • 现金预算包括哪些内容,来源是什么
  • 库存商品的成本主要包括
  • 请问母公司如何称呼
  • 购买发票打印机如何账务处理?
  • 多缴附加税款账务处理
  • 销售做不动 应该做什么
  • 个体工商户必须建账吗
  • 建筑公司直接把钱打到个人账户怎么走账
  • 银行日记账如何制做
  • 修改window
  • win8.1 开机进桌面
  • ubuntu 启动gui
  • 魔方win10
  • ip地址有冲突怎么查看
  • 会声会影win7怎么兼容
  • 红石2代
  • application error message 漏洞验证
  • windows8装.NET 3.5时出现0x800F0906错误解决方案
  • 如何使用u盘安装linux
  • linux查看hz
  • linux网卡添加vlan
  • [视频大小超过限制,无法查看]怎么打开
  • opengl glbegin
  • unity shaderlab新手宝典
  • 用bat调用exe并输入参数
  • nodejs抓取网页内容
  • Activity的生命周期和页面之间的传递
  • 飞机票其他税费包括什么内容
  • 四川国税网上办税
  • 福建闽江人才服务中心可靠吗
  • 综合所得税包括哪些内容
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设