TypeScript 1.3
受保护成员
在类中新的 protected
标示符就像它在其他一些像 C++, C# 与 Java 这样的常见语言中的功能一致. 一个 protected
(受保护的) 的成员仅在子类或者声明它的类中可见:
class Thing {
protected doSomething() { /* ... */ }
}
class MyThing extends Thing {
public myMethod() {
// 正确, 可以在子类中访问受保护成员
this.doSomething();
}
}
var t = new MyThing();
t.doSomething(); // 错误, 不能在类外调用受保护成员
元组类型
元组类型可以表示一个数组中部分元素的类型是已知, 但不一定相同的情况. 举例来说, 你可能希望描述一个数组, 在下标 0 处为 string
, 在 1 处为 number
:
// 声明一个元组类型
var x: [string, number];
// 初始化
x = ['hello', 10]; // 正确
// 错误的初始化
x = [10, 'hello']; // 错误
当使用已知的下标访问某个元素时, 能够获得正确的类型:
console.log(x[0].substr(1)); // 正确
console.log(x[1].substr(1)); // 错误, 'number' 类型没有 'substr' 属性
注意在 TypeScript 1.4 中, 当访问某个下标不在已知范围内的元素时, 获得的是联合类型:
x[3] = 'world'; // 正确
console.log(x[5].toString()); // 正确, 'string' 和 'number' 都有 toString 方法
x[6] = true; // 错误, boolean 不是 number 或 string