计划在二月里发布的TypeScript 2.2已经进入了发布候选版(RC)的阶段。除了包括一个新的用于Native React的JSX emit模式,TypeScript 2.2还包含了一个新的用于表示非原生(non-native)的object
类型和更好的混入( mixin) 支持以及组合类还有更多其他的新特性。
TypeScript 2.2新的object
类型使得只能接受非原生类型的方法签名更加规范化。这是一个例子,例如Object.getPrototypeOf
、Object.create
等等。它在语法上能接受所有的类型,但是在编译时会抛出一个异常。例如,对于一个字符串或者一个数字,object
类型会在编译时捕获到这种误用:
function mapObject(obj: object): object { /* ... */ } ... mapObject('string');// 类型错误
TypeScript 2.2也为创建混入(mixin)和组合类添加了更多的灵活性。例如,你现在可以创建一个带有Point
对象构造器的方法,通过添加一个timestamp
来声明一个继承自Points
的新类,并且返回一个新的TimestampedPoint
混入(mixin)类,这个类能被实例化也能被继承:
class Point { ... } export type Constructable = new (...args: any[]) => object; export function Timestamped(Base: BC) { return class extends Base { timestamp = new Date(); }; const TimestampedPoint = Timestamped(Point); const p = new TimestampedPoint(10, 10); class SpecialPoint extends Timestamped(Point) { z: number; constructor(x: number, y: number, z: number) { ... } }
TypeScript提供对JSX的长期支持,JSX是一种类XML语言拓展,它没有明确的语义,这种语义是用来表示带有属性值的树结构的。一个典型的,但不是专门的用法是用它来描述UI组件。截止到2.1版本,TypeScript已经能够通过两个特定的emit模式来处理在tsx
文件中的JSX表达式:preserve
和react
。前者用来保留JSX表达式,为的是在之后的阶段中处理它。后者会使用React.createElement
来创建一个js
文件。在2.2版本中,有一个新的react-native
模式,它的做法是完整保留所有的JSX表达式,同时会生成一个js
文件,这个文件是React Native所需的文件。
TypeScript 2.2rc包含其它更多的新特性,例如:
你可以通过运行以下命令来试用TypeScript 2.2rc:
npm install -g typescript@rc
查看英文原文:TypeScript 2.2 Adds New Object Type, Better Mixin Support, and More
关于TypeScript的推荐文章:
使用Visual Studio Code开发TypeScript http://www.linuxidc.com/Linux/2015-07/119456.htm
WebStorm下使用TypeScript http://www.linuxidc.com/Linux/2015-06/118853.htm
TypeScript 基本语法 http://www.linuxidc.com/Linux/2015-06/118852.htm
TypeScript 的详细介绍:请点这里
TypeScript 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-02/140673.htm