原文地址:https://blogs.msdn.microsoft.com/typescript/2016/01/28/announcing-typescript-1-8-beta/

今天,我们发布了 TypeScript 1.8 Beta,伴随着 1.8 版本带来了大量的变化。欢迎使用并反馈给我们:send us your feedback. 可以从  Visual Studio 2015, NuGet (Compiler 和 MSBuild task), npm, 或者直接从 source 来获取它.

对于 NPM 用户,请使用下面的命令来获取。

> npm install -g typescript@beta

在 VS Code 中,可以下载上面的包,然后使用下面的提示更新 .vscode/settings.json 文件。

"typescript.tsdk": "/some/path/to/node_modules/typescript/lib"

JavaScript in TypeScript Compilation

在 TypeScript 1.8,TypeScript 编译器可以与 TypeScript 文件一起使用 JavaScript 文件。启用这个特性,仅仅需要添加一个编译选项 --allowJs ,或者在 tsconfig.json 配置文件的 compilerOptions 配置节中添加 “allowJS”: true。这是一个非常棒的特性:

转换 JavaScript 项目到 TypeScript 项目

对于大的项目来说,从 JavaScript 项目转换到 TypeScript 项目意味着风险。对于具体的项目来说,简单地将所有的 .js 文件转换为 .ts 文件会导致大量的编译错误。使得转换过程很不友好。现在,通过允许 TypeScript 编译合并编译 JavaScript 代码,就可以一次一个文件地转换,但是仍然允许编译整个项目。这就使得开发者可以完全掌控转换过程。

使用第三方的 JavaScript 库便可更加容易

为了在 TypeScript 项目中使用现有的 JavaScript 库,开发者不得不使用类型定义 (.d.ts ) 文件,以便 TypeScript 编译器在编译的时候知道你在做什么,而在运行时,是 JavaScript 引擎知道你在做什么。直到你需要打包你的外部脚本库,都没有问题。到打包这一步,开发者需要第三方的打包器,例如 webpack 或者 browserify 等等。使用 TypeScript 1.8,你只需要简单地在项目中包含第三方的 JavaScript 库,编译器将会处理它,包括 Source  Map!

琐碎的 JavaScript 处理

使用 JavaScript in TypeScript 编译,TypeScript 编译器可以使用同样的方式来处理 JavaScript 文件。这包括 ES3/ES5,不同类型的模块定义,以及打包。例如,对于使用 TypeScript 编译器进行 ES6 到 ES5 降级转换,你只需要使用下面的命令:

> tsc --allowJs --outDir out target_file.js

扩展的 JSX 支持

经过大量的讨论,TypeScript 1.8 带来了一些关键的改进来扩展 TSX/JSX 的支持。

定制的 JSX 工厂

伴随 React ,JSX 语法已经不仅仅用于 React。JSX 工厂允许重写默认的 React 工厂。伴随 --jsx react 使用新的编译标志 --reactNamespace <factory_name> ,TSX 的作者现在可以控制工厂的名称。

无状态功能组件

在 React 0.14 中,无状态的功能组件是一个新概念,已经被大量采用。从 TypeScript 1.8 开始,我们在 TSX 文件中支持无状态的功能组件。

interface GreeterProps {
name: string;
} class Greeter extends React.Component<GreeterProps, {}> {
render() {
return <div>Hello, {this.props.name}</div>;
}
} //stateless functional component SimpleGreeter
let SimpleGreeter = ({name = ‘world‘}) => <div>Hello, {name}</div>;

在 VS2015 中的语法高亮

伴随着 Visual Studio 中的 TypeScript 1.8 更新,JSX 现在可以获得代码分类和着色的改进。

TypeScript Nuget 包

长期以来,我们的一些用户要求提供官方的 TypeScript Nuget 包,从 1.8 Beta 开始,每个版本我们将会通过 Nuget 分发 TypeScript 编译器和 MSBuild 任务,包的链接如下:

TypeScript compiler

TypeScript MSBuild task

另外,我们还会在 MyGet 提供TypeScript 的每日构建。虽然不提供 build, 但是你可以方便获取,让我们知道你的想法。你可在这里找到 build:here.

Chakra Core + TypeScript

我们一直在努力提高 TypeScript 编译器的性能,在  Chakra Core 发布几周之后,我们对它进行了测试。下面是每个编译引擎对不同尺寸的代码进行编译的图表。我们发现  Chakra Core 有着重要的改进。对比上一个版本有 5-20% 的改进,对于 Node 有 10-50% 提高,基于上述原因,我们将在适当的时机切换到 ChakraCore.

还有更多

TypeScript 1.8 还包括许多特性,包括:F-Bounded polymorphism,字符串字面类型等等。如果你希望深入了解这些新特性,请查阅:what’s new page. 而且,我们一直鼓励浏览现有的问题,提交请求,或者直接到  gitter 与我们交流。

翻译: TypeScript 1.8 Beta 发布的更多相关文章

  1. TypeScript 1.5 Beta带来修饰元数据支持

    (此文章同时发表在本人微信公众号"dotNET每日精华文章") 今天由于有点小感冒,就不长篇大论了,简单介绍一下和VS 2015 RC一同发布的TypeScript 1.5 Bet ...

  2. 基于CKEditor 你能做很多App。CKEditor 4.5 and CKFinder 3 beta 发布

    直击现场 CKEditor 4.5 and CKFinder 3 beta 发布 oschina 发布于: 2015年04月10日 (0评) 分享到:    收藏 +5 4月18日 武汉 源创会开始报 ...

  3. 课堂Beta发布140字评论

    Beta发布140字评论: 第一组:飞天小女警 此项目组的功能是礼物挑选,创意十足,用户只要一听名字便会被深深吸引,并且页面设计感,时尚感十足,不断吸引客户的眼球,而且发布到云服务器上面. 第二组:金 ...

  4. 个人对beta发布的观点

    内容:五个小组的beta发布 时间:2016年11月10日 13:40-15:15 地点:传媒西楼202 发布顺序: 1.飞天小女警(选礼物) 2.金州勇士(在线考试) 3.新蜂(俄罗斯方块) 4.天 ...

  5. TypeScript 0.9.1 发布,新增 typeof 关键字

    TypeScript 0.9.1 发布了,该版本提升了编译器和语言的性能,增加新的语言特性 typeof ,更好的 this 处理等.详细介绍请看发行说明. TypeScript 是微软新推出的一种语 ...

  6. PyRedisAdmin v1.0 Beta 发布,Redis 在线管理工具 - 开源中国社区

    PyRedisAdmin v1.0 Beta 发布,Redis 在线管理工具 - 开源中国社区 PyRedisAdmin v1.0 Beta 发布,Redis 在线管理工具

  7. Alpha、伪Beta 发布后,夏一鸣的个人感想与体会

    伪Beta发布在4月15日拉开了帷幕,夏一鸣代表OneZero团队上台进行了Account的发布.产品发布成功,但依然存在问题和不足.以下就Alpha.伪Beta 发布谈一谈我自己(夏一鸣)的想法. ...

  8. Alpha、伪Beta 发布后,严一格的个人感想与体会

    伪Beta发布在4月15日下午2.30左右结束,严一格所在的“爆打”团队产品发布成功.下面是我的想法和体会~ 1.作为“爆打”团队中的一员,我对我们团队可以成功发布Alpha版本和伪Beta版本感到由 ...

  9. Beta发布 _thunder_文案+美工展示

    作业要求:https://edu.cnblogs.com/campus/nenu/SWE2017FALL/homework/1366 团队介绍:thunder 组成员及各位博客地址: 1.王航:htt ...

随机推荐

  1. 定时调度框架Quartz随笔

    最近项目中的定时批处理用到了quartz定时任务,在此记录下quartz的配置吧,一个小demo仅供参考,也方便自己今后复习! 下面直接来步骤吧! 一.首先,要搭起能让quartz正常运行的环境,至少 ...

  2. HTTP协议,操作方法的幂等、安全性

    google了一些中文的资料, 基本了解了幂等是怎么回事儿. 备忘一下. PUT,DELETE操作是幂等的.所谓幂等是指不管进行多少次操作,结果都一样.比如我用PUT修改一篇文章,然后在做同样的操作, ...

  3. JVM-字节码执行引擎

    虚拟机字节码执行引擎 一.运行时栈帧结构 1.栈帧(Stack Frame)是用于支持虚拟机进行调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈(Virtual Method Stack) ...

  4. java eclipse环境搭建环境

    开发环境搭建: JDK的安装 http://www.oracle.com/technetwork/java/javase/downloads 下载文件:jdk-8u101-windows-x64.ex ...

  5. wordpress的创建

    1.将mysql的安装文件放入虚拟机 2.搭建yum库 3.依次安装mysql的5个文件 最后一个server需要的依赖太多,所以用yum进行安装. 或者直接全部用yum进行安装 6.进行mysql的 ...

  6. qt 程序启动参数 -qws  (转至 MrTXK

    运行嵌入式程序 在嵌入式QT版本中,程序需要服务器或自己作为服务器程序.服务器程序构造的方法是构造一个QApplication::GuiServe类型的QApplication对象.或者使用-qws命 ...

  7. mysql插入数据后返回自增ID的方法

    mysql和oracle插入的时候有一个很大的区别是,oracle支持序列做id,mysql本身有一个列可以做自增长字段,mysql在插入一条数据后,如何能获得到这个自增id的值呢? 方法一是使用la ...

  8. Android 学习第5课,配置android

    昨天与今天都在配置安卓的开发环境, 搞的头都大了,步骤比较多 1. 先下载安装 java 的 jdk ,这个是最基础的组件 2. 再下载 android SDK,  http://developer. ...

  9. Android FM 模块学习之四 源码解析(1)

    Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE MicrosoftInternetExplorer4 前一章我们了解了FM手动调频,接下 ...

  10. JSP 动作元素

    JSP动作元素 1.  动作元素分类 用来动态的包含文件.网页跳转及使用JavaBean组件等. 语法:<jsp:XXX />或者<jsp:XXX></jsp:XXX&g ...