• TypeScript 1.3
    • 受保护的
    • 元组类型

    TypeScript 1.3

    受保护的

    类里面新的protected修饰符作用与其它语言如C++,C#和Java中的一样。一个类的protected成员只在这个类的子类中可见:

    1. class Thing {
    2. protected doSomething() { /* ... */ }
    3. }
    4. class MyThing extends Thing {
    5. public myMethod() {
    6. // OK,可以在子类里访问受保护的成员
    7. this.doSomething();
    8. }
    9. }
    10. var t = new MyThing();
    11. t.doSomething(); // Error,不能在类外部访问受保护成员

    元组类型

    元组类型表示一个数组,其中元素的类型都是已知的,但是不一样是同样的类型。比如,你可能想要表示一个第一个元素是string类型第二个元素是number类型的数组:

    1. // Declare a tuple type
    2. var x: [string, number];
    3. // 初始化
    4. x = ['hello', 10]; // OK
    5. // 错误的初始化
    6. x = [10, 'hello']; // Error

    但是访问一个已知的索引,会得到正确的类型:

    1. console.log(x[0].substr(1)); // OK
    2. console.log(x[1].substr(1)); // Error, 'number'没有'substr'方法

    注意在TypeScript1.4里,当访问超出已知索引的元素时,会返回联合类型:

    1. x[3] = 'world'; // OK
    2. console.log(x[5].toString()); // OK, 'string'和'number'都有toString
    3. x[6] = true; // Error, boolean不是number或string