近日,微软官方推出了 TypeScript 3.5 版本。在这个版本中,修复了 12 个错误,并新增了一些很好的特性,让 TypeScript 又更加强大了。在本篇文章中,我们将详细了解这些新特性,以及如何使用它们来提高我们的开发效率。
新特性
--allowUmdGlobalAccess
如果我们需要访问全局 UMD 模块,TypeScript 中的控制严格导致将会无法访问,这会在一些场景下给我们带来不必要的麻烦。但其实在某些情况下,我们又确实需要使用全局 UMD 模块。因此在这个版本中,TypeScript 增加了一个 --allowUmdGlobalAccess 选项,用于允许访问全局 UMD 模块。
比如说,我需要使用全局变量 jQuery,但是因为控制严格导致无法访问,就需要使用这个选项进行开启:
declare global { const jQuery: any; } // --allowUmdGlobalAccess const $ = jQuery;
setImmediate() 类型定义
setImmediate() 是一个比较有用的 Web API,但是在 TypeScript 中的类型定义并不完整。在这个版本中,TypeScript 修补了这一点,完善了 setImmediate() 的类型定义。
declare function setImmediate(callback: (...args: any[]) => void, ...args: any[]): number;
更好的索引访问类型检查
在 TypeScript 3.4 中,TypeScript 引入了更加强力的类型推断能力,即在访问索引类型时,类型系统会根据上下文自动推断相关类型。在这个版本中,TypeScript 进一步加强了索引访问类型的能力:
type MyObj = { a: number; b: string; }; // 下面这条语句会得到 `string` type B = MyObj['b'];
以更好的方式检测 null
在这个版本中,TypeScript 引入了一个新的语法,可以更好地处理 null 值:
function getName(x: string | undefined | null) { return x?.toUpperCase(); }
上面的例子中,我们可以看到,可以在访问属性时使用 ?.,表示只有当前值不为 null 或 undefined 时,才会执行后面的方法。
对 RAM 限制的优化
在这个版本中,TypeScript 对于 RAM 限制的优化有了明显的提升。对于一些大型项目,可以有效的减小内存占用。
修复的错误
除了上述新增特性之外,TypeScript 3.5 还修复了一些已知的错误。下面是其中几个值得注意的错误:
- 修复了一个关于 import types 的编译错误;
- 修复了一个关于 object spread 的编译错误;
- 修复了在一些极端情况下存在的 bug,带来良好的性能提升。
总结
到目前为止,TypeScript 已经成为了前端开发中不可或缺的一部分。在这次 TypeScript 3.5 版本更新中,新增的特性可以让我们在开发过程中更加高效,修复的错误可以有效地提升项目的稳定性和性能。因此,我们应该积极地学习和使用这些新特性,以便更加顺利地完成我们的开发任务。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65b6226badd4f0e0ffed354c