写点什么

TypeScript 1.3 发布: 支持 protected 访问修饰符和元组类型

  • 2014-11-19
  • 本文字数:945 字

    阅读完需:约 3 分钟

Microsoft 已经发布了 TypeScript 1.3 ,而这距离 2.0 路线图的发布仅仅过去了 20 多天,虽然时间很短,但是新版本实现了路线图中提到的全部内容:语言层面支持“protected”访问修饰符以及元组类型,工具方面提供了更好的智能感知能力。

“protected”访问修饰符是开发者高度要求的功能特性,它能够让开发人员在TypeScript 中使用更多的面向对象模式。例如,在下面这段代码中我们通过该修饰符让子类可以使用父类的setElement 方法,但是其他部分的代码却根本不知道该方法的存在。

复制代码
class List<T> {
private contents: T[];
constructor() {
this.contents = [];
}
protected setElement(index: number, item: T) {
this.contents[index] = item;
}
}
class Stack<T> extends List<T> {
currentIndex: number;
constructor() {
super();
this.currentIndex = 0;
}
public push(item: T) {
this.setElement(this.currentIndex, item);
this.currentIndex++;
}
}
var stack = new Stack<number>();
stack.setElement(0, 1); // error 'setElement' is protected and only visible to subclasses

元组类型是语言层面的另一个特性,它能够让我们扩展现有的类型系统从而使用即将发布的 ECMAScript 6 标准中包含的各种模式。通过元组类型,我们可以准确地描述混合类型数组中数据的类型,例如下面这个例子:

复制代码
var tuple: [number, string] = [1, "bob"];
var secondElement = tuple[1];  // secondElement now has type 'string'

在工具层面,TypeScript 1.3 基于 Roslyn 构建了一个新的 Visual Studio 2015 语言服务,借助于该服务用户能够更快、更精确地找到所有的引用;可以像 C#那样使用“回车”或者“Tab”键从完成列表中提交选择。另外,新版本还增强了大纲和着色功能,并提升了 rename 的精度,为了更好地支持函数式编程风格,编辑器还改进了嵌套函数的处理机制。

TypeScript 1.3 已经内置到了 Visual Studio 2015 预览版中,但是如果你使用的是 Visual Studio 2013,那么可以通过工具安装 NPM 以及代码三种途径获取。


感谢崔康对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-11-19 04:141925
用户头像

发布了 321 篇内容, 共 132.9 次阅读, 收获喜欢 19 次。

关注

评论

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

为什么90%的“码农”做不了软件“架构师”?

Java架构师迁哥

Java 学习 架构师

第二周-学习总结-框架设计原则

莫森

极客大学架构师训练营

原创视频 | 架构漫谈—如何创造复杂而有序的软件系统【含课件下载】

编程道与术

Java 编程 架构 软件开发 软件架构

手把手教你:将 ClickHouse 集群迁至云上

腾讯云大数据

大数据 Clickhouse

架构师第一期作业(第三周)

Cheer

作业

致谢!华为全联接2020精彩回顾

华为云开发者联盟

华为 华为云 智能 hdc

c++杂谈4

菜鸟小sailor 🐕

一次注定失败的裸面

escray

ruby 程序员 面试 面经

为什么推广ipv6以及网站ipv6改造基本步骤

MySQL从删库到跑路

Web IP 网络

Greenplum 性能优化之路 --(一)分区表

腾讯云大数据

大数据

架构师训练营第三周学习总结

邓昀垚

极客大学架构师训练营

线段树(Segment Tree)

zayfen

算法 线段树 segment tree

区块链带来的技术创新和变革

CECBC

区块链技术 经济

原创 | 正确区分属性和字段

编程道与术

Java hibernate 编程 软件开发 jpa

华为云推出全自研数据库,GaussDB(openGauss)能否撑起一片天?

华为云开发者联盟

数据库 数据 gauss db

你在开发过程中使用Git Rebase还是Git Merge?

华为云开发者联盟

git 华为 管理 代码

原创 | 使用JPA实现DDD持久化-JPA,Hibernate与Spring Data JPA

编程道与术

Java hibernate Spring C Data jpa

数字货币视域下的金融安全实现路径

CECBC

区块链 数字货币

腾讯云大数据发布最新产品矩阵,助力企业整合打通海量数据

腾讯云大数据

大数据

智能体的奇幻漂流之“成都折叠”篇

脑极体

打造一个全功能的浏览器

Daniel

第二周-命题作业

莫森

极客大学架构师训练营

LeetCode题解:641. 设计循环双端队列,使用双向链表,JavaScript,详细注释

Lee Chen

大前端 LeetCode

架构师训练营第三周作业

文智

极客大学架构师训练营

原创 | 使用JPA实现DDD持久化-O/R阻抗失配(2/2)

编程道与术

Java hibernate DDD JDBC jpa

腾讯云副总裁刘煜宏:大数据平台算力弹性资源池达500万核,国内最强

腾讯云大数据

大数据

用go语言实现快排

Sean

算法 快速排序 Go 语言

原创 | 使用JPA实现DDD持久化-JPA vs MyBatis

编程道与术

Java hibernate 编程 mybatis jpa

揭开500亿“区块链”骗局

CECBC

法律 传销

jdk 源码系列之StringBuilder、StringBuffer

sinsy

Java jdk 源码解析

持续引领大数据行业发展,腾讯云发布全链路数据开发平台WeData

腾讯云大数据

大数据

TypeScript 1.3发布:支持protected访问修饰符和元组类型_语言 & 开发_孙镜涛_InfoQ精选文章