TypeScript 2.1发布
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发布相关推荐
- TypeScript 3.7 发布,带来 Optional Chaining 等特性
TypeScript 3.7 发布了,此版本带来了许多新特性. Optional Chaining 首先一大亮点是 Optional Chaining,这是社区呼唤特别强烈的一个 ECMAScript ...
- TypeScript 3.5 发布,速度提升、工具智能
TypeScript 3.5 发布了,此版本在编译器.语言和编辑器工具上带来了一些新特性. 速度提升 TypeScript 3.5 引入了几种对于 type 检查和增量构建的优化,使得速度大幅提升. ...
- TypeScript 3.4 发布
TypeScript 3.4 发布了,此版本主要更新内容如下: Faster subsequent builds with the --incremental flag:使用 --incrementa ...
- 华为称不会退出海外市场;英伟达证实遭遇黑客攻击;TypeScript 4.6发布 | 极客头条...
「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 苏宓 出品 | CSDN(ID:CSDNnews) ...
- 国内首个 App SDK 国家标准成功立项;苹果意外泄露iPhone 12发布时间;TypeScript 4.0 发布| 极客头条
「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 国内要闻 国内首个 App SDK 国家标准成功立项,华为. ...
- 苹果意外泄露iPhone 12发布时间;阿里将停止印度部分服务;TypeScript 4.0 发布| 极客头条...
整理 | 屠敏 头图 | CSDN 下载自东方 IC 快来收听极客头条音频版吧,智能播报由出门问问「魔音工坊」提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极 ...
- 互联网公司分批返岗;Safari 将封杀超过398天的 HTTPS 证书;TypeScript 3.8 发布 | 极客头条...
整理 | 屠敏 快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注 ...
- 华为宣布方舟编译器将开源;苹果秋季发布会定档9月10日;TypeScript 3.6 发布 | 极客头条...
快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有 ...
- 搜狐大量员工遭遇“工资补助”诈骗;腾讯客服回应“借钱就能避免微信号被封”;TypeScript 4.7发布|极客头条
「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...
最新文章
- 显卡不够时,如何训练大型网络
- ubuntu 默认鼠标双击问题
- python从入门到精通视频(全60集)-【网盘下载】Python从入门到精通视频(全60集)...
- “黄背心”运动持续进行 马克龙发长信呼吁沟通
- 无责任Windows Azure SDK .NET开发入门篇三[使用Azure AD 管理用户信息]
- docker容器化python开发环境_如何 Docker 化 Python Django 应用程序
- WEB前端学习六 js什么是闭包
- Linux新建yaml文件,Spring Boot 装载自定义yml文件
- 洛谷 P1306 斐波那契公约数
- 64位java虚拟机_java虚拟机64位下载
- Linux操作系统选择(免费)
- <HTML>简单登录页面代码
- java库存_java实现超市库存管理系统
- 数据库的三级封锁协议
- 华信云SMS短信平台介绍
- 用matlab给图片标记区域,MATLAB二值图像连通区域标记(两步法)
- 想将PPT的文字转换到Word文档?看这一篇就够了!!!
- python正则表达式匹配数字和字母_只能输入数字和字母组合的正则表达式怎么写?...
- daytime协议的服务器和客户端程序,用Socket套接字实现DAYTIME协议的服务器和客户端程序-20210414073352.docx-原创力文档...
- WebBrowser 显示Html内容3点细节技巧