写点什么

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

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

关注

评论

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

5家券商综合评级上升 6月券商App终端业务体验评测报告发布

博睿数据

四大核心能力再升级 Bonree ONE 3.0引领全域可观测进入next level

博睿数据

上万次实践总结,原来这些才是敏捷测试要遵循的原则

敏捷开发

编程 敏捷开发 极限编程 敏捷实践 持续改进

智谱发布 AI 生成视频模型「清影」;TikTok 推出听歌搜短视频功能丨 RTE 开发者日报

声网

青岛等保测评公司名称是什么?在哪里?电话多少?

行云管家

等保 堡垒机 等级保护 等保测评

当当网商品列表数据采集丨当当网商品列表数据接口

tbapi

当当网 当当网商品列表数据接口 当当网商品详情接口 当当网API接口

MobTech旗下核心SDK产品已全面适配HarmonyOS NEXT鸿蒙星河版

MobTech袤博科技

Java 开发者 产品动态

淘宝API接口测试的详细步骤

Noah

工作流中 BPMN 、 CMMN 、 DMN 的应用场景

源字节1号

开源

百行代码实现 Kafka 运行在 S3 之上

AutoMQ

企业应用观测中枢建设

嘉为蓝鲸

运维 日志管理 可观测

第十二期双周精选

AutoMQ

嘉为蓝鲸WeOps智能化模块:服务台智能助手提供更好的服务体验

嘉为蓝鲸

AI 运维 智能运维 大模型

技术同学的职场生存指南

老张

职业规划 认知提升 打工人 职场发展

时至今日,我们还要必须用敏捷开发吗?

敏捷开发

Scrum 敏捷开发 企业管理 代码规范 敏捷团队

什么是海外云手机?海外云手机有什么用?

Ogcloud

云手机 海外云手机 云手机海外版 手机群控 海外社媒营销

当 Meme 与 TON 融合,两大顶流标签会带来什么机会?

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

GOGC 2024 等你来

非凸科技

开源 技术 招聘 GOGC

汇聚数字智慧 构建新质未来——《CMG数字中国》融媒体节目正式上线

江湖老铁

代理IP如何助力验证广告?

IPIDEA全球HTTP

代理IP

现在有什么赛道可以干到退休?

王中阳Go

Go 面试

AutoMQ 与 Timeplus 达成战略合作强强联手

AutoMQ

云计算 云原生 后端

【首席战略官分享】业务流程管理的演变与挑战

望繁信科技

业务流程管理 流程挖掘 流程智能 望繁信科技

50万年——黑客找到你IPv6地址的时间

防火墙后吃泡面

极限编程要完全遵守的12个实践!

敏捷开发

程序员 敏捷开发 软件开发 代码规范 极限编程

如何通过 CloudCanal 实现从 Kafka 到 AutoMQ 的数据迁移

AutoMQ

运维安全审计系统定义以及作用详细讲解

行云管家

软件 安全运维 运维审计 运维安全

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