TypeScript 3.5 发布,修复了 12 个错误

近日,微软官方推出了 TypeScript 3.5 版本。在这个版本中,修复了 12 个错误,并新增了一些很好的特性,让 TypeScript 又更加强大了。在本篇文章中,我们将详细了解这些新特性,以及如何使用它们来提高我们的开发效率。

新特性

--allowUmdGlobalAccess

如果我们需要访问全局 UMD 模块,TypeScript 中的控制严格导致将会无法访问,这会在一些场景下给我们带来不必要的麻烦。但其实在某些情况下,我们又确实需要使用全局 UMD 模块。因此在这个版本中,TypeScript 增加了一个 --allowUmdGlobalAccess 选项,用于允许访问全局 UMD 模块。

比如说,我需要使用全局变量 jQuery,但是因为控制严格导致无法访问,就需要使用这个选项进行开启:

------- ------ -
  ----- ------- ----
-

-- ----------------------
----- - - -------

setImmediate() 类型定义

setImmediate() 是一个比较有用的 Web API,但是在 TypeScript 中的类型定义并不完整。在这个版本中,TypeScript 修补了这一点,完善了 setImmediate() 的类型定义。

------- -------- ---------------------- --------- ------ -- ----- -------- ------- -------

更好的索引访问类型检查

在 TypeScript 3.4 中,TypeScript 引入了更加强力的类型推断能力,即在访问索引类型时,类型系统会根据上下文自动推断相关类型。在这个版本中,TypeScript 进一步加强了索引访问类型的能力:

---- ----- - -
  -- -------
  -- -------
--

-- --------- --------
---- - - -----------

以更好的方式检测 null

在这个版本中,TypeScript 引入了一个新的语法,可以更好地处理 null 值:

-------- ---------- ------ - --------- - ----- -
  ------ -----------------
-

上面的例子中,我们可以看到,可以在访问属性时使用 ?.,表示只有当前值不为 null 或 undefined 时,才会执行后面的方法。

对 RAM 限制的优化

在这个版本中,TypeScript 对于 RAM 限制的优化有了明显的提升。对于一些大型项目,可以有效的减小内存占用。

修复的错误

除了上述新增特性之外,TypeScript 3.5 还修复了一些已知的错误。下面是其中几个值得注意的错误:

  • 修复了一个关于 import types 的编译错误;
  • 修复了一个关于 object spread 的编译错误;
  • 修复了在一些极端情况下存在的 bug,带来良好的性能提升。

总结

到目前为止,TypeScript 已经成为了前端开发中不可或缺的一部分。在这次 TypeScript 3.5 版本更新中,新增的特性可以让我们在开发过程中更加高效,修复的错误可以有效地提升项目的稳定性和性能。因此,我们应该积极地学习和使用这些新特性,以便更加顺利地完成我们的开发任务。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/65b6226badd4f0e0ffed354c


猜你喜欢

  • 理解 Koa2 的异步错误处理机制

    Koa2 是一个轻量级的 Node.js Web 框架,它使用了异步函数作为中间件来处理 HTTP 请求和响应。在实际开发中,经常会遇到处理异步错误的问题。Koa2 提供了一套优雅的异步错误处理机制,...

    9 个月前
  • 在 Docker 容器中使用 PM2 启动 Node.js 应用程序

    在开发和部署 Node.js 应用程序时,使用 PM2 管理进程是非常常见的方式。而在使用 Docker 部署应用程序时,使用 PM2 启动 Node.js 应用程序也是一个可行的方式。

    9 个月前
  • ES6 中的 Promise.race() 方法使用技巧

    在 JavaScript 中,Promise 是一种广泛使用的异步编程模式,Promise.race() 是其中一种非常有用的方法。它可以让你在多个 Promise 中选择一个执行完成的结果,而不需要...

    9 个月前
  • ES7 中的 Reflect 对象及其应用

    ES7 中引入了一个新的内置对象 Reflect,它提供了一组现有的对象操作方法。使用 Reflect 可以进行元编程以及对原有对象的操作和管理。在前端开发中,Reflect 有着广泛的应用,本文将详...

    9 个月前
  • 使用 Fastify 和 OAuth 2.0 构建授权服务器

    OAuth 2.0 是一种广泛使用的协议,用于授权用户使用第三方应用程序。它为应用程序提供了一个标准化的方式,以请求和获取用户的授权,而无需暴露用户的登录凭据。在前端开发中,了解如何构建一个 OAut...

    9 个月前
  • Cypress 自动化测试实践:使用 cy.intercept 拦截 http 请求

    在前端开发中,保证代码的质量和稳定性是非常重要的一环,而自动化测试是其中重要的环节之一。Cypress 是一个功能强大的前端自动化测试框架,使用它可以快速而高效地进行测试。

    9 个月前
  • Mongoose 中如何使用 $elemMatch 操作符来查询数组中的元素?

    Mongoose 中如何使用 $elemMatch 操作符来查询数组中的元素? 在使用 Mongoose 操作 MongoDB 数据库时,经常需要查询数组中的元素。

    9 个月前
  • 解决 ES8 的 Object.defineProperties() 在 IE11 中的兼容性问题

    ES8 中引入的 Object.defineProperties() 方法在现代浏览器中得到了广泛支持,但在 IE11 中,由于其对 ECMAScript 6 的支持度较低,可能会出现兼容性问题。

    9 个月前
  • Socket.io 如何避免数据丢失?

    Socket.io 是一个开源的实时通信库,主要用于构建实时应用程序,如在线聊天室、即时游戏等。然而,在实际应用中,Socket.io 可能会面临数据丢失的问题,本文将介绍 Socket.io 如何避...

    9 个月前
  • 利用 ECMAScript 2020 的 for…of…await 处理异步任务

    利用 ECMAScript 2020 的 for…of…await 处理异步任务 前言 在前端开发中,我们经常需要处理异步任务。传统的异步处理方法如 Promise 和 async/await 可以很...

    9 个月前
  • ECMAScript 2018 中的类的私有属性与方法的实现技巧

    ECMAScript 2018(即 ECMAScript 9)引入了一种新的类的私有属性和方法的实现技巧,它可用于涉及基于类的编程的 JavaScript 应用程序。

    9 个月前
  • RxJS 实现 WebSocket 通信的方法介绍

    什么是 RxJS RxJS 是一款响应式编程库,用于在 JavaScript 应用程序中实现异步和基于事件的程序。它提供了一个可观察对象序列,以及一些基于处理这些序列的操作符。

    9 个月前
  • Enzyme 常见问题排错指南

    Enzyme 常见问题排错指南 在前端开发中,Enzyme 显得尤为重要。它可以让我们方便地进行 React 组件的测试,从而让我们更加放心地对代码进行优化。但是在实践中,我们也会遇到一些 Enzym...

    9 个月前
  • Deno 中的 WebSocket 广播示例

    前言 Deno 是一个新兴的 JavaScript 和 TypeScript 运行时环境,使用 Rust 语言编写,由 Node.js 的创始人之一 Ryan Dahl 开发。

    9 个月前
  • 如何在 ES10 中使用可选链操作符来简化 if...else 语句

    在开发前端应用时,我们经常需要访问嵌套对象或者数组中的属性或者元素,但是这种情况下有时候属性或者元素可能会不存在,这就会导致程序抛出异常。通常解决这种问题的方式是使用 if...else 语句来检测属...

    9 个月前
  • JavaScript 中使用 ES12 的 map 和 set 函数解决内存泄漏

    前言 在 JavaScript 中,内存泄漏是开发者一直以来的痛点。内存泄漏会导致浏览器占用大量内存,甚至会造成浏览器的崩溃,给用户带来不好的体验。本文将介绍如何使用 ES12 的 map 和 set...

    9 个月前
  • CSS3 实现响应式设计布局时需注意的三点

    随着移动设备的普及,如何让网页适应不同分辨率的屏幕已经成为了每个 web 开发人员必须考虑的问题。而实现响应式设计布局是其中的一个非常重要的方面,本文将介绍 CSS3 实现响应式设计布局时需要注意的三...

    9 个月前
  • Docker 部署 Zabbix 的详细教程

    前言 Zabbix 是一款著名的开源监控系统,可用于监控网络、服务器、应用和服务等。而 Docker 是当前最流行的容器化解决方案之一,能够快速部署和运行各种应用。

    9 个月前
  • 基于 Koa2 的 APNs 推送实现

    近年来,移动应用已成为各个行业的标配,如何保证消息能够及时推送成为了很多移动应用开发者面临的问题。在 iOS 中,推送通知的方案是苹果的 APNs(Apple Push Notification se...

    9 个月前
  • 如何解决 “使用 Fastify 和 Nodemon 时 SIGTERM 错误” 的问题

    最近,我在使用 Fastify 和 Nodemon 的时候遇到了一个问题:当我在命令行窗口中按下 Ctrl-C 终止进程时,我收到了一个 SIGTERM 错误。这个错误让我非常困惑,因为我以前从来没有...

    9 个月前

相关推荐

    暂无文章