写点什么

TypeScript 1.8 Beta 版新增 JavaScript 集成、无状态函数式组件等功能

  • 2016-02-16
  • 本文字数:983 字

    阅读完需:约 3 分钟

TypeScript 是微软开源的一个 JavaScript 超集。近日, TypeScript 1.8 Beta 版发布,带来了许多新的语言特性和工具增强。

TypeScript 1.8 的编译器现在可以将 JavaScript 同 TypeScript 文件一起编译了。这可能是该版本所带来的影响最大的特性。该特性可以通过命令行标识--allowJS启用,使开发人员可以在 TypeScript 项目中无缝地使用 JavaScript 代码,而不必立即转换所有的 JavaScript 代码,这项可能导致编译错误的任务现在可以按照开发人员喜欢的节奏进行。此外,可以编译 JavaScript 代码意味着可以在 TypeScript 编译中包含第三方库,所以就不需要另外进行打包将它们捆绑到一起。

无状态函数式组件是一种源于 React 项目的理念,TypeScript 1.8 Beta 版也引入了这一特性,其主要的吸引力在于它们是无状态的轻量级组件,很容易组合。下面是一个 TypeScript 无状态函数式组件的例子:

复制代码
let SimpleGreeter = ({name = ‘world‘}) => <div>Hello, {name}</div>;

上述代码同下面的代码等效:

复制代码
interface GreeterProps {
name: string;
}
class Greeter extends React.Component<GreeterProps, {}> {
render() {
return <div>Hello, {this.props.name}</div>;
}
}

无状态函数式组件需要最新版的react.d.ts

TypeScript 1.8 Beta 版还新增对“F- 限定多态( F-bounded polymorphism )”的支持,这使得一个类型参数可以受同一参数列表中的引用类型参数约束。从下面的代码中可以看到,类型T受同一参数列表中的U约束,现在,这在 TypeScript 中也是合法的了:

复制代码
function assign<T extends U, U>(target: T, source: U): T {
for (let id in source) {
target[id] = source[id];
}
return target;
}

控制流分析是 TypeScript 中另一项受人欢迎的特性增强,它有助于捕获一些常见错误,比如不可达代码、未使用标签、隐式返回等等。

TypeScript 1.8 Beta 版还包含许多其他新特性,比如简化的 React props类型管理、字符串常值类型、经过改进的 union/intersection 类型推断等。要了解更多信息,请查看官方公告

上面已经提到, TypeScript 是 JavaScript 的一个严格的超集,它额外增加了静态类型,并支持基于类的面向对象编程。读者可以从 Visual Studio 2015 NuGet npm 获取 TypeScript 1.8 Beta 版。

查看英文原文: TypeScript 1.8 Beta Adds Integration with JavaScript, Stateless Functional Components and More

2016-02-16 18:001928
用户头像

发布了 1008 篇内容, 共 394.2 次阅读, 收获喜欢 345 次。

关注

评论

发布
暂无评论
发现更多内容

十五、深入Python输入和输出

刘润森

Python

如何设计大型互联网系统架构

天天向上

极客大学架构师训练营

甲方日常 32

句子

随笔杂谈

第四周总结

Geek_ac4080

Week 3学习总结

balsamspear

极客大学架构师训练营

迭代开发中的微服务拆分

码猿外

架构 微服务 架构演进

阿里大牛原创技术好文精选整理:Redis+Nginx+设计模式+Spring全家桶+SQL+Dubbo

Java架构之路

Java 程序员 面试 编程语言

大型互联网系统常用的技术方案

天天向上

极客大学架构师训练营

三步法解析Express源码

执鸢者

面试 大前端 Node Express

给新入职工程师的10条建议

supernova

管理 职场 工作方式

自学编程,看书还是视频?

沉默王二

程序员 读书 自学编程 视频

架构师训练营第四周课后作业

Gosling

极客大学架构师训练营

区块链要如何解决供应链金融痛点?

CECBC

区块链 金融

Flink时间服务和计时器-6-5

小知识点

scala 大数据 flink

第11周作业

Vincent

极客时间 极客大学

第11周总结

Vincent

极客时间 极客大学

第四课系统架构课后作业

Geek_michael

极客大学架构师训练营

架构师训练营第四周学习总结

Gosling

极客大学架构师训练营

大区块链的必然性

CECBC

区块链技术

每天都要写吗?

Nydia

一文带你轻松了解Python导入模块的各种命令

计算机与AI

Python

一次用户故事地图之旅

Bruce Talk

敏捷开发 用户故事 Product Owner 用户故事地图

架构师训练营第四周作业

我是谁

极客大学架构师训练营

典型的大型互联网应用方案

garlic

极客大学架构师训练营

职场求生攻略答疑篇之 4 —— 社会有多真实,人心就有多虚伪

臧萌

职场 职场成长

Linux的信号

菜鸟小sailor 🐕

c++

Week 3命题作业

balsamspear

极客大学架构师训练营

马化腾的区块链理想

CECBC

区块链 马化腾

手把手教你分析Mysql死锁问题

捡田螺的小男孩

MySQL 死锁

十六、深入Python字符串

刘润森

Python

架构师训练营第四周学习总结

吴传禹

极客大学架构师训练营

TypeScript 1.8 Beta版新增JavaScript集成、无状态函数式组件等功能_JavaScript_Sergio De Simone_InfoQ精选文章