ts 类型

2016-03-29  本文已影响0人  Jalon

any表示任意类型
void则可以看作与any相反,意思是没有类型,通常一个函数如果没有返回值,那么就可以把他的返回类型设置为void。

protected componentWillUnmount():void {

}

在TypeScript里,每个成员默认为public的。
那么他的实例和继承他的类的实例是可以调用这些方法或变量的。

当成员被标记成private时,它就不能在声明它的类的外部访问。比如:

class Animal { 
  private name: string; 
  constructor(theName: string) { 
    this.name = theName; 
  }
}
new Animal("Cat").name; // Error: 'name' is private;

protected
修饰符与private
修饰符的行为很相似,但有一点不同,protected
成员在派生类中仍然可以访问,就是说,他的实例不可以访问这些变量或方法,但是他的子类的实例可以。


有时候我们希望用户可以输入任何类型的值的同时,又希望返回的类型能够确定,那么就用到泛型了。

function identity<T>(arg: T): T { 
  return arg;
}

泛型类
泛型类看上去与泛型接口差不多。 泛型类使用(<>
)括起泛型类型,跟在类名后面。

class GenericNumber<T> {
    zeroValue: T;
    add: (x: T, y: T) => T;
}
let myGenericNumber = new GenericNumber<number>();
myGenericNumber.zeroValue = 0;
myGenericNumber.add = function(x, y) { return x + y; };

GenericNumber类的使用是十分直观的,并且你可能已经注意到了,没有什么去限制它只能使用number类型。 也可以使用字符串或其它更复杂的类型。

let stringNumeric = new GenericNumber<string>();
stringNumeric.zeroValue = "";
stringNumeric.add = function(x, y) { return x + y; };

alert(stringNumeric.add(stringNumeric.zeroValue, "test"));
上一篇 下一篇

猜你喜欢

热点阅读