类和对象
类是面向对象语言的一个重要概念,在TS中定义类的方法比JS多加了类型限制。类可以理解为对象的模型,定义好了类,然后使用类创造对象。
// 定义
class 类名 {
属性名: 类型;
constructor(参数: 类型){
this.属性名 = 参数;
}
方法名(){ .... }
}
对象实质上就是属性和方法的容器,它的主要作用就是存储属性和方法,这就是所谓的封装,默认情况下,对象的属性是可以任意的修改的,为了确保数据的安全性,在TS中可以对属性的权限进行设置。
readonly:如果在声明属性时添加一个readonly,则属性便成了只读属性无法修改
public(默认值):可以在类、子类和对象中修改
class Person{
public name: string;
public age: number;
constructor(name: string, age: number){
this.name = name;// 可以在类中修改
this.age = age;
}
}
protected :可以在类、子类中修改
class Person{
protected name: string;
protected age: number;
constructor(name: string, age: number){
this.name = name;// 可以修改
this.age = age;
}
}
private :可以在类中修改。对于一些不希望被任意修改的属性,可以将其设置为private,导致无法再通过对象修改其中的属性。
class Person{
private name: string;
private age: number;
constructor(name: string, age: number){
this.name = name; // 可以修改
this.age = age;
}
}
静态属性
静态属性(方法),使用static开头。使用静态属性无需创建实例,通过类即可直接使用。
class Girl{
static gender = 1;
}
继承
通过继承可以将其他类中的属性和方法引入到当前类中,可以在不修改类的情况下完成对类的扩展。发生继承时,如果子类中的方法会替换掉父类中的同名方法,这就称为方法的重写。
接口
接口用于定义对象的结构或类的形状,确保数据遵循特定的特点。接口的作用类似于类,不同点在于接口中的所有方法和属性都是没有实值的,接口主要负责定义一个类的结构,接口可以去限制一个对象的接口,对象只有包含接口中定义的所有属性和方法时才能匹配接口。同时,可以让一个类去实现接口,实现接口时类中要保护接口中的所有属性。
interface Person{
name: string;
age:number;
gender:boolen;
A():void;
}
TypeScript能够帮助我们在编码过程中发现类型相关的问题,提高了代码的健壮性。面向对象编程让代码更结构化、可维护,并且提供了类、继承和多态等特性。接口和类型声明则用于确保代码的一致性,并在与其他库集成时提供更好的开发体验。这些特性共同使TypeScript成为开发中的强大工具。