写点什么

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

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

关注

评论

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

我学了这套性能优化方法论,领导年终奖给我发了6个月

刘祥

性能调优 Java’

深度解读:Apache Kafka如何超越消息引擎的界限

刘祥

Kafk Java’

深入Kafka消息分区机制:从原理到实践

刘祥

kafka

YashanDB正式入驻合肥数据要素流通平台

极客天地

大模型重塑软件开发,华为云AI原生应用架构设计与实践分享

华为云开发者联盟

人工智能 软件开发 华为云 华为云开发者联盟 企业号2024年6月PK榜

TDengine 推出新连接器,与 Wonderware Historian 无缝连接

TDengine

数据库 tdengine 时序数据库

基于Java+微信小程序实现《电子点餐系统》

hunter_coder

后端开发

基于Java“花鸣”B2C电子商务平台设计实现(源码+lw+部署文档+讲解等)

hunter_coder

后端开发

基于Java“萌宠之家”宠物综合服务平台设计实现(源码+lw+部署文档+讲解等)

hunter_coder

后端开发

基于Java《数据库系统原理》课程平台设计实现(源码+lw+部署文档+讲解等)

hunter_coder

后端开发

基于Java:流浪动物领养信息系统设计实现(源码+lw+部署文档+讲解等)

hunter_coder

后端开发

mac卡牌游戏:堆叠大陆 Stacklands for Mac 中文安装包

你的猪会飞吗

Mac游戏下载 Mac游戏推荐

解密消息队列的复制魔法:RocketMQ vs Kafka

刘祥

消息队列对比

基于Java+微信小程序实现《旅游出行必备商城》

hunter_coder

后端开发

京东JD商品SKU信息API返回值应用指南:商品规格数据驱动的精准营销

技术冰糖葫芦

api 网关 API Explorer api 货币化 API 文档

MoneyPrinterPlus:AI自动短视频生成工具-腾讯云配置详解

程序那些事

工具 AIGC

Mindmanager是什么?一文说清这款导图软件,附5款平价替代软件!

彭宏豪95

思维导图 在线白板 AIGC 效率软件 思维导图软件

基于Java+微信小程序实现《购物商城系统》

hunter_coder

后端开发

基于Java“游侠”旅游信息管理系统设计实现(源码+lw+部署文档+讲解等)

hunter_coder

后端开发

基于Java“镜头人生”约拍网站系统设计实现(源码+lw+部署文档+讲解等)

hunter_coder

后端开发

Linux 三剑客 grep、sed、awk

左诗右码

Linux

EMR Serverless Spark:结合实时计算 Flink 基于 Paimon 实现流批一体

阿里云大数据AI技术

大数据 flink spark 阿里云 Serverless

零信任价值获全面认可 新场景下展现无穷潜力

芯盾时代

信息安全 零信任 零信任模型

基于Java+微信小程序实现《教学辅助微信小程序》

hunter_coder

后端开发

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