深入浅出TypeScript | 青训营

77 阅读2分钟

TypeScript的类

TypeScript中的类是基于ES6中的类语法进行扩展的,类是一种面向对象的编程范式,它允许将属性和行为封装在一个单独的实体中,并通过类的实例来访问和操作这些属性和行为。

在TypeScript中,类由属性、方法和构造函数组成,可以使用箭头函数或lambda表达式来定义类方法。类可以继承自另一个类并实现接口。除此之外,TypeScript中的类支持访问修饰符(public、private和protected)和静态属性和方法。

1.1 class类

TS中的class,不仅提供了class的语法功能,也作为一种类型存在

const p:Person = new Person()

实例属性初始化

  name: string = "kangyun";
  gender = "男";
}
const p: Person = new Person();

构造函数 构造函数:为class类的实例属性初始化值的 构造函数不需要返回值

  name: string;
  gender: string;
  constructor(name: string, gender: string) {
    this.name = name;
    this.gender = gender;
  }
}
const p: Person = new Person('张三', '男');
</script>

类的实例方法

class Person {
  name: string;
  gender: string;
  constructor(name: string, gender: string) {
    this.name = name;
    this.gender = gender;
  }
  // 方法的类型注解(参数和返回值)与函数用法相同
  sayHello(name: string): void {
    console.log(`hello,${name}`);
  }
}
const p: Person = new Person("张三", "男");
p.sayHello("李四");

1.2 class类成员可见性

可见性修饰符包括:

public 公有的 proected 受保护的 private 私有的 public表示公共、公有的,公有成员可以被任何地方访问 public: 是默认可见性,所以可以直接少略

  public move(){
    console.log('moving!')
  }
}

protected: 表示受保护的,仅对其所在类和子类中(非实例对象)可见 在子类的方法内部可以通过this来访问父类中受保护的成员,但是对实例不可见

  protected move() {
    console.log("moving");
  }
}
class Dog extends Animal {
  bark() {
    console.log("汪汪......");
    this.move();
  }
}
const dog = new Dog();
dog.bark();

private: 表示私有的,只在当前类中可见,对实例对象以及子类也是不可见的

  private move() {
    console.log("moving");
  }
  walk(){
    this.move()
  }
}

通过今天的学习,让我知道了关于类的知识,也知道了学习类对于TypeScript的重要性。