類里面新的protected修飾符作用與其它語言如C++,C#和Java中的一樣。一個類的protected成員只在這個類的子類中可見:
class Thing {
protected doSomething() { /* ... */ }
}
class MyThing extends Thing {
public myMethod() {
// OK,可以在子類里訪問受保護的成員
this.doSomething();
}
}
var t = new MyThing();
t.doSomething(); // Error,不能在類外部訪問受保護成員
元組類型表示一個數(shù)組,其中元素的類型都是已知的,但是不一樣是同樣的類型。比如,你可能想要表示一個第一個元素是string類型第二個元素是number類型的數(shù)組:
// Declare a tuple type
var x: [string, number];
// 初始化
x = ['hello', 10]; // OK
// 錯誤的初始化
x = [10, 'hello']; // Error
但是訪問一個已知的索引,會得到正確的類型:
console.log(x[0].substr(1)); // OK
console.log(x[1].substr(1)); // Error, 'number'沒有'substr'方法
注意在TypeScript1.4里,當訪問超出已知索引的元素時,會返回聯(lián)合類型:
x[3] = 'world'; // OK
console.log(x[5].toString()); // OK, 'string'和'number'都有toString
x[6] = true; // Error, boolean不是number或string