当前位置:首页 > 科技  > 软件

理解 TypeScript 中的 “using” 关键词

来源: 责编: 时间:2024-06-14 08:52:49 261观看
导读using 关键词用于代替 const 和let,用于定义一个可释放的对象,即一个在使用后可以自我清理的对象。然而,这个关键词源自 C#,那么 TypeScript 只是复制 C# 吗?并不是,TypeScript 只是从 C# 中挑选出最优秀的特性,以提升整体开

9mM28资讯网——每日最新资讯28at.com

using 关键词用于代替 const 和let,用于定义一个可释放的对象,即一个在使用后可以自我清理的对象。9mM28资讯网——每日最新资讯28at.com

然而,这个关键词源自 C#,那么 TypeScript 只是复制 C# 吗?9mM28资讯网——每日最新资讯28at.com

并不是,TypeScript 只是从 C# 中挑选出最优秀的特性,以提升整体开发者体验。9mM28资讯网——每日最新资讯28at.com

今天解释 using 关键词在 TypeScript 中的工作原理,以及一个适用于 using 关键词的常见使用场景。9mM28资讯网——每日最新资讯28at.com

工作原理

using 关键词可以像 const 和 let 一样使用。9mM28资讯网——每日最新资讯28at.com

// 注意:必须赋值某个值或返回一个值的函数。using x = getX();

虽然这种赋值是可能的,但 using 关键词应该仅用于:9mM28资讯网——每日最新资讯28at.com

  • 使用 Symbol.dispose 关键词的对象。
  • 返回使用 Symbol.dispose 关键词的对象的函数。
  • 否则请使用 const 或 let。

Symbol.dispose 是 TypeScript 中的一个特殊函数,用于将一个对象标记为“资源”,即一个可释放的对象。9mM28资讯网——每日最新资讯28at.com

以下是一个 TypeScript 中的“资源”示例:9mM28资讯网——每日最新资讯28at.com

// 使用 Symbol.dispose 标记为可释放的对象const disposableObject = {  [Symbol.dispose]: () => {    console.log("Dispose of me!");  },};// 将对象用作资源using resource = disposableObject;

我们可以通过 await using 扩展这一概念,这允许我们通过Symbol.asyncDispose函数异步释放资源:9mM28资讯网——每日最新资讯28at.com

const getResource = () => ({  [Symbol.asyncDispose]: async () => {    await someAsyncFunc();  },});{  await using resource = getResource();}

常见使用场景 —— 数据库连接

数据库连接可能是 using 的最常见使用场景。9mM28资讯网——每日最新资讯28at.com

原因很简单,你不需要在代码中手动关闭数据库连接,让 Symbol.asyncDispose 函数为你处理这个问题。9mM28资讯网——每日最新资讯28at.com

以下是 TotalTypeScript 中的一些代码片段,完美展示了这一点。9mM28资讯网——每日最新资讯28at.com

不使用 using:❌9mM28资讯网——每日最新资讯28at.com

const connection = await getDb();try {  // 使用连接进行操作} finally {  await connection.close();}

使用 using:✅9mM28资讯网——每日最新资讯28at.com

const getConnection = async () => {  const connection = await getDb();  return {    connection,    [Symbol.asyncDispose]: async () => {      await connection.close();    },  };};{  await using db = await getConnection();  // 使用 db.connection 进行操作} // 自动关闭!

想象一下,现在你可以拥有的这种安心感。9mM28资讯网——每日最新资讯28at.com

数据库连接的关闭现在通过 Symbol.asyncDispose 和 using 关键词自动且负责任地处理。9mM28资讯网——每日最新资讯28at.com

结论

using 关键词用于定义“资源”,这些资源是包含 Symbol.dispose 函数的可释放对象。9mM28资讯网——每日最新资讯28at.com

using 关键词的加入将消除大量意外的 bug,并将开发者体验提升十倍。9mM28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-93699-0.html理解 TypeScript 中的 “using” 关键词

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Go必知必会:数组和切片详解

下一篇: 2024年,一大波 Web 新功能来袭!

标签:
  • 热门焦点
  • K60 Pro官方停产 第三方瞬间涨价

    虽然没有官方宣布,但Redmi的一些高管也已经透露了,Redmi K60 Pro已经停产且不会补货,这一切都是为了即将到来的K60 Ultra铺路,属于厂家的正常操作。但有意思的是该机在停产之后
  • 小米降噪蓝牙耳机Necklace分享:听一首歌 读懂一个故事

    在今天下午的小米Civi 2新品发布会上,小米还带来了一款新的降噪蓝牙耳机Necklace,我们也在发布结束的第一时间给大家带来这款耳机的简单分享。现在大家能见到最多的蓝牙耳机
  • 7月安卓手机性价比榜:努比亚+红魔两款新机入榜

    7月登场的新机有努比亚Z50S Pro和红魔8S Pro,除了三星之外目前唯二的两款搭载超频版骁龙8Gen2处理器的产品,而且努比亚和红魔也一贯有着不错的性价比,所以在本次的性价比榜单
  • 5月iOS设备好评榜:iPhone 14仅排第43?

    来到新的一月,安兔兔的各个榜单又重新汇总了数据,像安卓阵营的榜单都有着比较大的变动,不过iOS由于设备的更新换代并没有那么快,所以相对来说变化并不大,特别是iOS好评榜,老款设
  • 女孩租房开2小时空调用完100元电费引热议:5级能耗惹不起 月薪过万电费也交不起

    近日,江苏苏州一女孩租房当天充值了100元电费,开着空调不到2小时发现电费已用完。对于为什么这个快,房东表示,电表坏了这种情况很多,之前也遇到过,给租客换
  • 一条抖音4亿人围观 ! 这家MCN比无忧传媒还野

    作者:Hiu 来源:互联网品牌官01 擦边少女空降热搜,幕后推手曝光被网友誉为“纯欲天花板”的女网红井川里予,近期因为一组哥特风照片登上热搜,引发了一场互联网世界关于
  • ESG的面子与里子

    来源 | 光子星球撰文 | 吴坤谚编辑 | 吴先之三伏大幕拉起,各地高温预警不绝,但处于厄尔尼诺大“烤”之下的除了众生,还有各大企业发布的ESG报告。ESG是“环境保
  • iQOO 11S评测:行业唯一的200W标准版旗舰

    【Techweb评测】去年底,iQOO推出了“电竞旗舰”iQOO 11系列,作为一款性能强机,该机不仅全球首发2K 144Hz E6全感屏,搭载了第二代骁龙8平台及144Hz电竞
  • iQOO 11S新品发布会

    iQOO将在7月4日19:00举行新品发布会,推出杭州亚运会电竞赛事官方用机iQOO 11S。
Top