当前位置: 首页 > 网络应用技术

打字稿4.5已发布:新扩展名称,新语法,新工具类型...

时间:2023-03-07 16:08:50 网络应用技术

  Typescript 4.5已发布Beta版本10.1。本文将介绍一些值得关注的新功能和更改,例如新的/扩展的名称,简介语法,新的构建 - 工具类型等。

  今天,在Node12对ESM的支持逐渐稳定之后,TS4.5终于开始支持NODE下的ESM相关支持。这应该是版本4.5的核心新功能。因为原始文本太长了,所以仅在此处简要介绍。相关详细信息:

  我们知道,在汇编过程中使用的Tsconfig中使用的语法或API通常是DOM,ESNEXT,Webworker,例如语言和环境相关的API语句。

  以这种方式存在某些问题,并且很难自定义细化的元素,例如我需要的一部分。管理全局类型的另一种方法是肯定的,即这种类型的NPM软件包。因此,TS4.5还支持以这种方式明确安装的依赖项,代表原始的依赖项。

  当您的LIB包含DOM时,TS将首先找到该位置中存在的相应软件包,实际上,您实际上就是这样:

  该协议实际上由NPM提供,类似于(),您实际上是 @types/web。

  有关分析逻辑的更改,请参见Compiler/program.ts有关详细信息。

  TS 4.5引入了一种新的工具类型,表明了承诺的分辨率类型。社区工具库已经具有类似的功能工具类型,例如类型:

  它的作用实际上是拳击的递归执行类型,提取了承诺价值的类型。但是,与社区实施不同,该官员也被作为相关方法的基本实施实施。例如,以前的TS4.5的方法,类型定义是:

  现在是:

  对于具有相同字段的接口,我们通常使用类型的后卫明确结论,例如:

  使用关键字可以帮助编译器进一步结束通用类型,以与相应的类型结束,您可以参考打字稿的另一侧:类型编程或打字稿的另一侧:类型编程(2021 Relake)以了解更多类型的警卫,是关键字,是关键字,是关键字,模板,与模板类型相关。

  现在,TS还提供了对模板字符串类型的相关支持:

  TS 4.5支持新的配置:其主要特征是该特征也可以在其中使用,但属于此提案的ES版本的第一个版本。此外,它还包含此功能支持。

  当我们使用TS类型别名时,我们经常遇到需要循环参考类型别名本身的情况。TS编译器将检测到可能的无限嵌套情况并发出警告,如以下情况:

  如果您根据模板字符串类型进行了某些类型的体操,则可能遇到了基于此和条件类型提取字符串的情况:

  对于模板字符串,TS提供了这些特殊的工具类型和

  现在看起来不错,但是如果您在字符串的开头添加了很多空间,则可以报告错误。实际上,该字符串的这种操作非常常见,尤其是URL分析(请参阅Farrow’Score功能)。

  回到自己的实现,您会发现它实际上是递归的一种形式,也就是说,可以在每个递归呼叫中立即返回一个值,并且其返回值将没有其他操作。这样,TS编译器确实可以不需要每次分别创建中间变量,它将不再触发警告。

  相反,是使用条件类型的其他判断结果,例如:

  在这里,将组合结合在一起,每次都会带来额外的工作,因此,当复杂性达到一定程度时,仍然会被警告。

  这也是TS4.5中介绍的重要功能之一。如果条件类型的分支简单地返回了另一种类型(本身,其他工具类型,通用类型,推断提取值等),则TS可以减少其不必要的中间工作,因此它比以前更“松散”。

  在打字稿中,未使用的导入成员将自动删除,例如:

  其中,将在编译过程中将其删除。如果某些情况有TS构建的检查策略的某些情况?例如,使用:

  目前,我们不想介绍会员被删除。TS4.5介绍了新的汇编选项,以避免任何介绍。

  此功能还使用自定义文件(//)对VUE,Svelte和Astro的框架具有特殊的意义。通常,其模板的汇编本身是由TSS进行处理的,而脚本部分的编译是由TS编译器所感知的,这使得使用模板部分无法感知,并且需要其他工作。

  在上一个版本中,TS还引入了控制整个导入语句的情况的选项。值包括:

  一起使用时,有必要确保通过仅类型导入的类型导入类型,例如修改符号。LET简短介绍:

  如果您有一定的经验,则必须知道,当您启用时,每个文件必须是一个模块(至少一个)。这是因为对于这种类型的工具,它们通常由单个文件处理(Typescript's the API也是),这与收集源文件和生成处理器中的上下文的过程不同,而不是这样。

  因此,启用时会有某些限制:

  在TS4.5之前,我们可以以这种方式识别导入语句,其名称导入成员都是所有类型。

  实际上,这样做不是很漂亮。它需要将其分为两个导入语句。如果迷恋是犯罪的,您还可以专门将文件的导入陈述分类,例如:

  但是现在,您可以直接介绍著名类型的类型并添加修饰符,并在导入中确定实际的简介和类型介绍。

  这项新功能来自当前处于第三阶段阶段的提案提案提案-Import-Assersertions。它介绍了指示模块类型的新语法类型。此提案实际上非常有前途。例如,如果HTML和CSS模块实现了真实组件,则该建议的目的是导入JSON文件,但现在它已获得了一个独立的建议:fomposal-json-modules。也可以使用此建议:

  此外,TC39建议将不可避免地整合到打字稿中并成为一项新功能。您可以在本文中阅读和讨论TC39提案(阶段1/2/3)。

  这项新功能主要是为了改善不常见类型声明的新功能的体验:

  在此之前,不舒服的声明只会标记。

  您可以在Typescript 4.5迭代计划中查看4.5版的迭代计划。全文后,请参阅:-)