2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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

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

关注

评论

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

Junit 测试中如何对异常进行断言

HoneyMoose

Web Service进阶(五)SOAPBinding方式讲解

No Silver Bullet

6月月更 SOAPBinding

浅谈JavaScript原型和原型链

大熊G

JavaScript 前端 6月月更

WordPress 常规设置

海拥(haiyong.site)

WordPress 6月月更

软件设计本质

GalaxyCreater

架构 设计模式 架构师 系统 软件设计

如何使用物联网低代码平台进行模型管理?

AIRIOT

物联网 低代码开发

Linux驱动开发_视频广告机开发、Linux进程编程介绍

DS小龙哥

6月月更

最全!即学即会 Serverless Devs 基础入门(上)

Serverless Devs

C#入门系列(七) -- 循环语句

陈言必行

C# 6月月更

建木持续集成平台v2.4.1发布

Jianmu

DevOps CI/CD 开源项目 gitops 自动化运维

知名巧克力全球召回,区块链帮你摆脱“甜蜜陷阱”

旺链科技

区块链 产业区块链 食品安全 食品溯源

fomo3d区块链分红游戏系统开发(案例演示)

开发微hkkf5566

java培训 @Autowired 的实现原理

@零度

JAVA开发

企业竞争利器——知识管理

小炮

最全!即学即会 Serverless Devs 基础入门(下)

Serverless Devs

spring4.1.8初始化源码学习三部曲之一:AbstractApplicationContext构造方法

程序员欣宸

Java spring 6月月更

springboot,vue,es,activiti数字知识库管理系统

金陵老街

Vue springboot ES Activiti 知识库

性能优化手记下篇之【计费】

鲸品堂

性能优化 运维

微软成为规模化敏捷组织的16个关键因素

ShineScrum

敏捷 谷歌 规模化敏捷

7 个 Flutter 开源项目,让你成为更好的 Flutter 开发者

坚果

6月月更

SAP 云平台 ABAP 编程环境的前世今生

汪子熙

Cloud 云平台 SAP abap 6月月更

Fabric.js 精简输出的JSON🎫

德育处主任

FabricJS 6月月更

AssertJ 的异常(Exception )断言

HoneyMoose

PHP开发者福音,支持CRUD代码生成且前后分离的tp6+Vue3后台管理系统开源啦!

妙码生花

php typescript Vue3 thinkphp Pinia

探究Presto SQL引擎(3)-代码生成

vivo互联网技术

sql presto antlr4

【Python技能树共建】字符串方法

梦想橡皮擦

6月月更

GIT 小白的指令合集

甜甜的白桃

git 版本管理 6月月更

重点亦难点?三个案例看数据分类分级如何有效有序进行

美创科技

数据分类 数据安全

中兴新支点加入龙蜥社区,共建操作系统开源新生态

OpenAnolis小助手

开源 龙蜥社区 合作 CLA 中兴新支点

技术分享| 浅谈调度平台设计

anyRTC开发者

Web 音视频 指挥调度 调度 快对讲

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