首页 > 其他分享 >[Typescript 5.2] New Keyword: using

[Typescript 5.2] New Keyword: using

时间:2023-06-19 21:45:19浏览次数:35  
标签:5.2 Typescript const await finally obj using New filehandle

TypeScript 5.2 will introduce a new keyword - 'using' - that you can use to dispose of anything with a Symbol.dispose function when it leaves scope.

This can simpfiy the try / finally related code:

function * g() {
  const handle = acquireFileHandle(); // critical resource
  try {
    ...
  }
  finally {
    handle.release(); // cleanup
  }
}

const obj = g();
try {
  const r = obj.next();
  ...
}
finally {
  obj.return(); // calls finally blocks in `g`
}

 

Become:

function * g() {
  using handle = acquireFileHandle(); // block-scoped critical resource
} // cleanup

{
  using obj = g(); // block-scoped declaration
  const r = obj.next();
} // calls finally blocks in `g`

 

File handles

Accessing the file system via file handlers in node could be a lot easier with using.

Without using:

import { open } from "node:fs/promises";

let filehandle;
try {
    filehandle = await open("thefile.txt", "r");
} finally {
    await filehandle?.close();
}

With using:

import { open } from "node:fs/promises";
const getFileHandle = async (path: string) => {
  const filehandle = await open(path, "r");
  return {
    filehandle,
    [Symbol.asyncDispose]: async () => {
      await filehandle.close();
    },
  };
};
{
  await using file = getFileHandle("thefile.txt");
  // Do stuff with file.filehandle
} // Automatically disposed!

 

Blog: https://www.totaltypescript.com/typescript-5-2-new-keyword-using

标签:5.2,Typescript,const,await,finally,obj,using,New,filehandle
From: https://www.cnblogs.com/Answer1215/p/17492281.html

相关文章

  • BUUCTF NewStarCTF 公开赛赛道Week2 Writeup
    文章目录WEEK2WEBWord-For-You(2Gen)IncludeOneUnserializeOneezAPIMISCYesecnodrumsticks2Coldwinds'sDesktop奇怪的二维码qsdz'sgirlfriend2WEEK2WEBWord-For-You(2Gen)题目描述哇哇哇,我把查询界面改了,现在你们不能从数据库中拿到东西了吧哈哈(不过为了调试的代码似乎忘......
  • new 和 delete 运算符
     下面是使用new运算符来为任意的数据类型动态分配内存的通用语法:newdata-type;在这里,data-type 可以是包括数组在内的任意内置的数据类型,也可以是包括类或结构在内的用户自定义的任何数据类型。让我们先来看下内置的数据类型。例如,我们可以定义一个指向double类型的指针......
  • day 33 反射机制,元类,__new__,__call__,元类下的属性查找
    1,内置方法在满足某种条件下自动触发 2、python是动态,强类型的,解释型语言动态:在程序中定义变量时不需要定义变量的类型,在执行时才知道变量的类型;静态:必须定义好变量的类型。只要是动态语言,就必须有反射机制 解释:一句一句的翻译后执行强类型:3:反射实现反射机制的步骤1、......
  • 用 Typescript 搭建 Nodejs Server
    Typescript是微软开发的自由和开源的变成语言,是Javascript的超集,它可以编译成Javascript。Typescript支持Javascript的语法,同时它又包含了类型定义、接口、枚举、泛型等很多后端语言的特点,能在编译时支持类型检查,因此可以很好的提升代码质量。本文将演示如何使用Typescipt......
  • TensorFlow05.2 神经网络反向传播算法-单输出感知机和多输出感知机及其梯度
    1单输出感知机在这里我们可以看到,\(W_2,1^1\)其中他的下标第一个2,表示的连着上一层的x2,下标第一个1代表着连着下一侧的x1。然后上标1代表着第一层。E是做了一个loss处理。\(X_i^1\)这个下标的i代表当前层数节点的编号,然后这个1代表着第1层。\(W_i,j^k\),i表示上一层的节点编......
  • 操作系统(5.2.1)--请求分页的硬件支持
    内存、外存、页表机制、缺页中断机构、地址变换机构1.页表机制在请求分页系统中所需要的主要数据结构是页表。为支持请求分页,须在页表中再增加若干项,供程序(数据)在换进、换出时参考。在请求分页系统中的每个页表项如下所示:现对其中各字段说明如下:(1)状态位P:用于指示该页是否已......
  • [ts]typescript高阶之typeof使用
    LcukyCola前端工具官网:https://luckycola.com.cn/public/dist/#/前言学习目标1、typeof与对象结合使用2、typeof与枚举结合使用3、typeof与class类结合使用4、const断言的使用一、typeof与对象结合使用代码如下(示例):letlolo={name:'zhanhsan',age:18,ch......
  • Hugging News #0616: 有几项非常重要的合作快来围观、最新中文演讲视频回放发布!
    每一周,我们的同事都会向社区的成员们发布一些关于HuggingFace相关的更新,包括我们的产品和平台更新、社区活动、学习资源和内容更新、开源库和模型更新等,我们将其称之为「HuggingNews」,本期HuggingNews有哪些有趣的消息,快来看看吧!重磅更新safetensors将成为保存模型的默......
  • Python的self作用,以及__init__,__new__
    本章来探讨一下Python类的self作用,以及__init__,__new__。为什么是探讨,不是学习,因为菜......
  • TensorFlow05.2-神经网络输出方式
    这里的输出方式有这几种:1......