AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

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:002080
用户头像

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

关注

评论

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

啃碎并发(三):Java线程上下文切换

猿灯塔

作业

chenzt

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

jiangnanage

架构师训练营 -- 第五周作业

stardust20

一致性Hash算法

技术小生

极客大学架构师训练营

一致性hash算法的实现和平衡性测试

周冬辉

Spring核心原理解析

Java spring

新增的两个区块链职业到底是做什么的?

CECBC

技术人才 系统操作 需求落地 框架搭建

分布式缓存一致性hash算法实现

考尔菲德

一口气说出 OAuth2.0 的四种授权方式

程序员小富

Java oauth2.0

话题讨论|作为一名程序员,你下班之后都会做些什么?

InfoQ写作社区官方

写作平台 话题讨论 话题 热门活动

计算机中短期学习路线

zack

Scrum Master与Project Manager的区别

Mew151

Scrum

朱嘉明教授获2020杭州区块链国际周“特别致敬奖”

CECBC

CECBC 朱嘉明 区块链国际周 特别致敬

05周作业—技术选型

dao

极客大学架构师训练营 作业 一致性Hash算法

第5周结构师训练营——作业

jiangnanage

国内首本CTF赛事技术解析书籍,五年之约,兑现了!

华章IT

网络安全 Web CTF Reverse PWN

第五周总结

考尔菲德

kafka监听mysql实时数据变更

爱java爱自己

MySQL mysql事务

数据库周刊31丨openGauss 正式开源;7月数据库排行榜发布;oracle ADG跨版本搭建;PG解决社保问题;mysqlbinlog解析……

墨天轮

MySQL 数据库 oracle 性能优化 opengauss

“区块链+” 医疗行业场景应用迎来大发展

CECBC

医疗方案 区块链+ 场景应用落地 多元场景应用

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

stardust20

Redis-进阶篇一

多选参数

数据库 redis redis高可用 redis6.0.0 Redis项目

架构师训练营 W5 作业

Kun

极客大学架构师训练营

你可能还不知道自己无知

小天同学

读书 智能时代 信息噪声 高考

架构师训练营第五周作业

talen

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

花花大脸猫

极客大学架构师训练营

让Go“恐慌”的十种方法

博文视点Broadview

Go 语言

分布式缓存总结

罗亮

架构师训练营第五周作业

架构师 极客大学架构师训练营

Spring Boot读取配置文件的几种方式

Java旅途

Spring Boot properties yaml

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