TypeScript是微软开发的一个JavaScript的超集,提供了最新的JavaScript特性以及可选的静态类型。近日,TypeScript 2.1发布。该版本提供了功能更为强大的类型检查器,并且让开发人员可以编写出更简洁的代码。以下是该版本带来的主要新特性:

  • Downlevel async/await:虽然之前的版本已经提供了async/await,但downlevel async/await让开发人员可以在ES3/ES5环境里使用该特性。

  • Object Rest&Spread:这是ES2017的一项新提案,让开发人员可以便捷地合并、拆解以及部分地复制对象。在使用类似Redux这样的库时,这一特性已经被广泛地使用。Object Spread让开发人员可以便捷地复制一个对象,如下所示:

        let copy = { ...original };

    类似地,我们可以合并多个不同的对象,如下所示,合并后的对象将同时具有foo、bar和baz的属性:

        let merged = { ...foo, ...bar, ...baz };

    开发人员也可以在合并后的对象中添加新属性。Object Rest是一个相对的过程,它可以排除特定的属性,如下所示:

        let { a, b, c, ...defghijklmnopqrstuvwxyz } = alphabet;
  • keyof和Lookup类型:实际上,keyof操作符被称为“索引类型查询(index type query)”,它就像一个查询对象类型的键的查询,如下所示:

        interface Person {name: string;age: number;location: string;}let propName: keyof Person;

    上述代码也可以写成如下形式:

        let propName: "name" | "age" | "location";

    而Lookup类型被称为“索引访问类型(indexed access types)”,它看上去像访问一个元素,如下所示:

        interface Person {name: string;age: number;location: string;}let a: Person["age"];
  • “映射类型(Mapped Types)”:这是TypeScript 2.1最令人感兴趣的特性。假如我们有一个Person类型,如下所示:

        interface Person {name: string;age: number;location: string;}

    如果我们希望以此为基础创建一个属性全为布尔值的类型,那么我们需要定义一个全新的类型:

        interface BooleanifiedPerson {name: boolean;age: boolean;location: boolean;}

    而借助映射类型,我们可以将BooleanifiedPerson定义为:

        type BooleanifiedPerson = {[P in "name" | "age" | "location"]: boolean};

    借助keyof操作符,上述代码还可以进一步简化为:

        type BooleanifiedPerson = {[P in keyof Person]: boolean};
  • Partial类型:让开发人员可以创建现有类型的所有可选版本。此外,TypeScript 2.1还提供了Readonly、Record和Pick等实用类型,感兴趣的读者可以点击这里查看它们的实现方式。

此外,TypeScript 2.1还放松了对程序包导入的检查,只要用户安装了就可以使用,TypeScript将不会再因为找不到相关的声明文件而提示错误。

感兴趣的读者可以通过NuGet获取TypeScript,也可以通过npm进行安装:

npm install -g typescript

Visual Studio 2015用户需要首先升级到Update 3,再通过专门的安装包进行安装。Visual Studio Code或Sublime Text用户也可以根据相关的说明使用最新版本的TypeScript。

原文地址:http://www.infoq.com/cn/news/2016/12/TypeScript-2-1-publish


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

TypeScript 2.1发布相关推荐

  1. TypeScript 3.7 发布,带来 Optional Chaining 等特性

    TypeScript 3.7 发布了,此版本带来了许多新特性. Optional Chaining 首先一大亮点是 Optional Chaining,这是社区呼唤特别强烈的一个 ECMAScript ...

  2. TypeScript 3.5 发布,速度提升、工具智能

    TypeScript 3.5 发布了,此版本在编译器.语言和编辑器工具上带来了一些新特性. 速度提升 TypeScript 3.5 引入了几种对于 type 检查和增量构建的优化,使得速度大幅提升. ...

  3. TypeScript 3.4 发布

    TypeScript 3.4 发布了,此版本主要更新内容如下: Faster subsequent builds with the --incremental flag:使用 --incrementa ...

  4. 华为称不会退出海外市场;英伟达证实遭遇黑客攻击;TypeScript 4.6发布 | 极客头条...

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 苏宓 出品 | CSDN(ID:CSDNnews) ...

  5. 国内首个 App SDK 国家标准成功立项;苹果意外泄露iPhone 12发布时间;TypeScript 4.0 发布| 极客头条

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 国内要闻 国内首个 App SDK 国家标准成功立项,华为. ...

  6. 苹果意外泄露iPhone 12发布时间;阿里将停止印度部分服务;TypeScript 4.0 发布| 极客头条...

    整理 | 屠敏 头图 | CSDN 下载自东方 IC 快来收听极客头条音频版吧,智能播报由出门问问「魔音工坊」提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极 ...

  7. 互联网公司分批返岗;Safari 将封杀超过398天的 HTTPS 证书;TypeScript 3.8 发布 | 极客头条...

    整理 | 屠敏 快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注 ...

  8. 华为宣布方舟编译器将开源;​苹果秋季发布会定档9月10日;TypeScript 3.6 发布 | 极客头条...

    快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有 ...

  9. ​搜狐大量员工遭遇“工资补助”诈骗;​腾讯客服回应“借钱就能避免微信号被封”;TypeScript 4.7发布|极客头条

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

最新文章

  1. 显卡不够时,如何训练大型网络
  2. ubuntu 默认鼠标双击问题
  3. python从入门到精通视频(全60集)-【网盘下载】Python从入门到精通视频(全60集)...
  4. “黄背心”运动持续进行 马克龙发长信呼吁沟通
  5. 无责任Windows Azure SDK .NET开发入门篇三[使用Azure AD 管理用户信息]
  6. docker容器化python开发环境_如何 Docker 化 Python Django 应用程序
  7. WEB前端学习六 js什么是闭包
  8. Linux新建yaml文件,Spring Boot 装载自定义yml文件
  9. 洛谷 P1306 斐波那契公约数
  10. 64位java虚拟机_java虚拟机64位下载
  11. Linux操作系统选择(免费)
  12. <HTML>简单登录页面代码
  13. java库存_java实现超市库存管理系统
  14. 数据库的三级封锁协议
  15. 华信云SMS短信平台介绍
  16. 用matlab给图片标记区域,MATLAB二值图像连通区域标记(两步法)
  17. 想将PPT的文字转换到Word文档?看这一篇就够了!!!
  18. python正则表达式匹配数字和字母_只能输入数字和字母组合的正则表达式怎么写?...
  19. daytime协议的服务器和客户端程序,用Socket套接字实现DAYTIME协议的服务器和客户端程序-20210414073352.docx-原创力文档...
  20. WebBrowser 显示Html内容3点细节技巧

热门文章

  1. (转)前置++和后置++的区别
  2. 分布式拒绝服务攻击(DDoS)原理及防范
  3. Python通过amqp消息队列协议中的Qpid实现数据通信
  4. 17款加速效率的CSS工具
  5. VPC2007差分硬盘让小硬盘也能跑多个虚拟机
  6. 使用云原生应用和开源技术的创新攻略
  7. MAUI 跨平台播客应用程序(Conf 2021)
  8. HTTP1.1 Keep-Alive到底算不算长连接?
  9. 03Prism WPF 入门实战 - Region
  10. VS Code + ML.NET 玩转交互式机器学习