写点什么

TypeScript 2.0 已发布

  • 2016-10-13
  • 本文字数:1504 字

    阅读完需:约 5 分钟

微软最近发布了 TypeScript 2.0,该版本提供了简化的声明文件获取、Non-nullable 类型,以及Readonly修饰符。

TypeScript 项目经理 Daniel Rosenwasser,他们团队对于该版本“紧随ECMAScript 规范,为JavaScript 库和工具提供了更广泛的支持,并通过一个语言服务在各大编辑器中提供了一流的编辑体验”感到极为“兴奋”。

TypeScript 2.0 使得开发者可以更容易地获取并使用声明文件。Rosenwasser 承认“学习如何获取和管理声明文件的依赖性”过去一直是用户最头疼的问题,但在 2.0 版中通过npm install --save @types/lodash命令即可安装范围包@types/lodash,随后当开发者的程序中任何位置导入 Lodash 后,TypeScript 2.0 将能自动引用。

Non-nullable 类型是 2.0 版引入的另一个新功能。虽然该语言最初的设想是所有类型始终为 Nullable 的,但实际上该团队也发现,这样的设计并不能预防null/undefined问题。在此次发布的新版中,nullundefined均有自己的类型,借此开发者可以明确表示何时可接受null/undefined值。下列视频展示了 TypeScript 的这一特性。

插入一个视频: https://msdnshared.blob.core.windows.net/media/2016/09/nonnullable-types-fade.mp4

TypeScript 2.0 中的属性可声明为只读的,随后所有不包含 Set-accessor 的 Get-accessor 均会被视作只读的。

复制代码
class Person {
readonly name: string;
constructor(name: string) {
if (name.length
<p> 整个社区对微软此次发布的新版给予极高评价。Ed Rochenski 在 <a href="https://news.ycombinator.com/item?id=12557808">HackerNews</a> 报道中 <a href="https://news.ycombinator.com/item?id=12558030"> 表达了自己的意见 </a>:</p>
<blockquote>
<p> 我已经迫不及待想要在我们的生产应用中使用这些新功能了。TypeScript 一直是我步入 JavaScript 开发的桥梁,IMHO JavaScript 早已被废弃,真不知道如果没有 TypeScript 的话我能否继续坚持使用 JavaScript 来开发。</p>
<p>Non-nullable 类型、可加标签的 Union 类型,以及更简单的声明文件,这些是新版中最让我激动的功能。</p>
</blockquote>
<p> 在 Rosenwasser 的博客文章中,用户 Allen 通过评论 <a href="https://blogs.msdn.microsoft.com/typescript/2016/09/22/announcing-typescript-2-0/#comments"> 问到 </a>:“我很想在自己的代码库中使用 strictNullChecks,但能否通过什么方法让某些 / 全部库类型定义继续使用 lax null 检查?”据称他在配合外部类型定义使用 strictNullChecks 时遇到了问题,因为所用库的类型定义并非严格 Null safe 的。</p>
<p>Rosenwasser 回应称:“目前需要针对 strictNullChecks 创建依赖项,虽然很多第三方.d.ts 文件不受影响可以继续使用,但如果遇到问题,可以随时向 types-2.0 分支的 DefinitelyTyped 发送 Pull 请求。”</p>
<p> 根据 <a href="https://github.com/Microsoft/TypeScript/wiki/Roadmap"> 路线图 </a> 的介绍,TypeScript 还支持 ES8 对象属性的 Spread 和 Rest,以及函数表达式 / 箭头函数的装饰器(Decorator),并可支持节点注册钩子。自 TypeScript 1.8 以来完整的改进和变更清单可访问该项目的 GitHub<a href="https://github.com/Microsoft/TypeScript/wiki/What%27s-new-in-TypeScript#typescript-20"> 页面 </a>。</p>
<p>TypeScript 已通过 Apache 许可方式开源并发布。有意参与该项目的 InfoQ 读者可访问:<a href="https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md">https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md</a>。</p>
<p><strong> 查看英文原文:</strong><a href="https://www.infoq.com/news/2016/09/TypeScript-2-Released">TypeScript 2.0 Released</a></p>
2016-10-13 19:002091
用户头像

发布了 283 篇内容, 共 106.5 次阅读, 收获喜欢 62 次。

关注

评论

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

有状态算子和应用(七)

Databri_AI

flink 算子 状态

在线HTTP/HTTPS协议GET,POST,RESTful接口测试

入门小站

Linux

【Flutter 专题】69 图解基本 Stepper 步进器

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

优秀的求职者,是如何巧妙应对面试提问呢?

xcbeyond

面试 求职 8月日更

IntelliJ IDEA 如何在 Java 中进行快速注释

HoneyMoose

Golang中的Remove和RemoveAll的对比分析

liuzhen007

8月日更

三分钟看完单例模式的八个例子

4ye

Java 后端 设计模式 单例模式 8月日更

从0开始的TypeScriptの六:webpack5热更新打包TS

空城机

JavaScript typescript 大前端 8月日更

Redis入门到超神 - 03 redis.conf配置文件详解

陈皮的JavaLib

redis 运维 8月日更

netty系列之:文本聊天室

程序那些事

Java Netty nio 程序那些事

另一个失败的小项目

箭上有毒

8月日更

Vue进阶(二十八):浅析 Vue 中 computed 与 method 区别

No Silver Bullet

Vue 8月日更 computed

跟我读论文丨ACL2021 NER 模块化交互网络用于命名实体识别

华为云开发者联盟

自然语言处理 机器学习 ACL2021 NER 模块化交互网络 实体识别

oeasy教您玩转vim - 15 - # 行内查找

o

【Vue2.x 源码学习】第三十四篇 - 组件部分-Vue组件与初始化流程简介

Brave

源码 vue2 8月日更

手撸二叉树之二叉树的最近公共祖先

HelloWorld杰少

数据结构与算法 8月日更

大厂offer?拿来吧你!网易有道笔试编程题特辑

有道技术团队

招聘 笔试 #技术干货# 网易有道

毕业总结

方堃

TCP-三次握手和四次挥手简单理解

一个大红包

8月日更

架构杂谈——也谈互联网系统架构演进

老农小江

Java 架构

iOS开发:苹果开发者账号第一次新建APP ID以及创建App的步骤

三掌柜

8月日更 8月

LeetCode题解:783. 二叉搜索树节点最小距离,递归,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

Spring @Transactional 注解事务

Rubble

springboot 8月日更

旗舰机怎么做隐私安全?荣耀Magic3有个答案

脑极体

毕业设计:设计电商秒杀系统

9527

#架构实战营

如何评价《Java 并发编程艺术》这本书?

苹果看辽宁体育

书籍推荐 java 并发

「免费开源」基于Vue和Quasar的前端SPA项目crudapi后台管理系统实战之EXCEL数据导出(十三)

crudapi

Vue crud crudapi qusar 数据导出

4种基于像素分割的文本检测算法

华为云开发者联盟

目标检测算法 文本检测 像素分割 文本检测算法 文本

Linux之ss命令

入门小站

Linux

算法分析

一个大红包

8月日更

Discourse 用户的邮件无法投递的时候如何处理

HoneyMoose

TypeScript 2.0 已发布_JavaScript_James Chesters_InfoQ精选文章