typescript 面向对象
类(class)是typescript的核心,使用typescript开发时,大部分代码都是写在类里面的
1. 类的定义
class name{
}
关键字: class
- 类的属性
- 类的方法
- 访问控制符
访问控制符:
public: 的属性和方法可以在类的内部和外部访问到;
private : 只能在类的内部访问到,类的外部访问不到;
protected: 可以在类的内部和类的子类被访问到
2. 类的构造函数
constructor (public name:string){
}
constructor()
constructor (arg :string )
constructor(public arg :string)
类的构造函数:
实际上是类里面的一个特殊方法,这个方法只有在类被实例化的时候才会被调用,而且只被调用一次,constructor(){}
3. 类的实例化
new classname()
new classname('king');
4. 类的继承 extends 和super
extends 默认调用父类构造方法
子类的构造函数必须调用父类的构造方法
constructor (name :string,code: string){
super(name) 调用父类的狗仔函数
work()
}
super.work()
5.generic
参数化的类型,一般用来限制集合的内容类型
用<>括起来的类型,就是前面集合类型的generic,它规定了前面的集合类型里面的内容必须是generic指定的类型
var workers: Array<Person> =[];
workers[0]=new Pserson('name')
workers[0]=new personchild('name','age') (personchild extends Pserson)
6.interface
接口:用来建立某种代码约定,使得其他开发者在调用某个方法或创建新的类时必须遵循接口所定义的代码约定
interface 接口定义
implements 接口实现
在typescript中 接口的两种使用形式
- 1.类型限制
//1.接口的使用必须符合定义的规范(不能缺少或多出某些属性)
作为方法的参数的类型声明,当调用方法时,typescript会检查传入的参数是否符合接口声明的所有属性;
interface IPerson{
name: string;
age: number;
}
class Person{
constructor(public config: IPerson) {
}
}
var p1 = new Person({
name: "alan",
age: 100
});
- 2.接口实现
.实现接口的类必须实现接口里的方法
interface Animal{
eat();
}
class Sheep implements Animal{
eat() {
console.log("I eat grass");
}
}
class Tiger implements Animal{
eat() {
console.log("I eat meat");
}
}
总结:
- 接口可作为类的参数的申明使用
- implements 实现接口,同时必须实现接口中的方法。