【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

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

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

关注

评论

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

前端如何处理「并发」问题?

不叫猫先生

并发 axios 6 月 优质更文活动

在 Go 中使用 sqlx 替代 database/sql 操作数据库

江湖十年

数据库 后端 sql Go 语言

Backdata.net 搜索引擎

Larry

搜索引擎 导航网站

培育开源人才,助力开源生态发展|2023开放原子全球开源峰会校源行分论坛圆满落幕

开放原子开源基金会

开源 开放原子全球开源峰会 开放原子 校源行

2023-06-18:给定一个长度为N的一维数组scores, 代表0~N-1号员工的初始得分, scores[i] = a, 表示i号员工一开始得分是a, 给定一个长度为M的二维数组operatio

福大大架构师每日一题

golang 算法 rust 福大大架构师每日一题

飞书深诺多系统数据同步方案

飞书深诺技术团队

IT知识百科:什么是OTN——光传送网?

wljslmz

6 月 优质更文活动

Vue3中常用的Composition(组合)API-ref(引用)函数

不觉心动

6 月 优质更文活动

做好演讲表达的道法术器(《如何激活你的表达思维》-- 培训收获)(68/100)

hackstoic

领导力 演讲 沟通

Vue3中常用的Composition(组合)API-watch(监视)函数

不觉心动

6 月 优质更文活动

MySQL DeadLock -- 二级索引导致的死锁

红袖添香

MySQL 数据库 数据库死锁

数字化扶乩的最佳语言是英语?

FN0

AIGC

Vue3中常用的Composition(组合)API-初识setup

不觉心动

6 月 优质更文活动

Vue3中常用的Composition(组合)API-ref(引用)函数

不觉心动

6 月 优质更文活动

C语言编程—语法练习

二哈侠

C语言 语法 6 月 优质更文活动

微服务中「组件」集成

Java 架构

基于STM32的铁路自动围栏系统设计

DS小龙哥

6 月 优质更文活动

一文读懂ChatGPT的工作原理:大语言模型是个啥?它到底咋工作的?

禅道项目管理

#人工智能 ChatGPT AI 2022

xenomai内核解析--实时linux概述

沐多

RTOS 实时linux xenomai

CSS小技巧之悬停3D发光效果

南城FE

CSS 前端 动画 3D 交互

AI关于AI民主化的高见

FN0

AIGC

在人工智能冲击下,IT部门的生存价值在哪里?

FN0

AIGC

如何评估大型语言模型(LLM)?

Baihai IDP

人工智能 深度学习 大模型 白海科技 大模型评估

Kubernetes集群认证管理

穿过生命散发芬芳

6 月 优质更文活动

万字详解常用设计模式

越长大越悲伤

设计模式

WMS 实物库存系统设计

红袖添香

系统设计 系统架构 供应链物流 WMS仓库管理 库存系统

当 Rokid 遇上函数计算

阿里巴巴云原生

阿里云 云原生 Rokid

如何在 Linux 上列出磁盘?

wljslmz

6 月 优质更文活动

华为云CodeArts Build快速上手编译构建-进阶玩家体验

华为云PaaS服务小智

云计算 编译 开发 华为云

漫谈 SAP 产品里页面上的 Checkbox 设计与实现

Jerry Wang

SAP 前端设计 思爱普 6 月 优质更文活动

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