前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >TypeScript中的类

TypeScript中的类

原创
作者头像
堕落飞鸟
发布2023-05-22 09:45:22
发布2023-05-22 09:45:22
78200
代码可运行
举报
文章被收录于专栏:飞鸟的专栏飞鸟的专栏
运行总次数:0
代码可运行

在TypeScript中,类是一种用于创建对象的蓝图,它定义了对象的属性和方法。类可以看作是对象的模板,通过实例化类可以创建具体的对象。

定义类

要定义一个类,可以使用 class 关键字后跟类的名称。类的名称通常使用帕斯卡命名法(首字母大写)。

代码语言:javascript
代码运行次数:0
运行
复制
class Person {
  // 类的属性和方法在这里定义
}

类的属性和方法

类可以包含属性和方法,用于描述对象的状态和行为。

属性

类的属性定义了对象的状态,它们保存了对象的数据。

代码语言:javascript
代码运行次数:0
运行
复制
class Person {
  name: string;
  age: number;
}

构造函数

构造函数是一个特殊的方法,在创建对象时被调用。它用于初始化对象的属性。

代码语言:javascript
代码运行次数:0
运行
复制
class Person {
  name: string;
  age: number;

  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }
}

方法

方法定义了对象的行为,它们是类中的函数。

代码语言:javascript
代码运行次数:0
运行
复制
class Person {
  name: string;
  age: number;

  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }

  sayHello() {
    console.log(`Hello, my name is ${this.name} and I'm ${this.age} years old.`);
  }
}

实例化类

要使用类创建对象,可以使用 new 关键字后跟类名,并传入构造函数的参数。

代码语言:javascript
代码运行次数:0
运行
复制
const person = new Person("John", 25);

类的继承

TypeScript支持类的继承,可以通过继承一个基类来创建派生类。

代码语言:javascript
代码运行次数:0
运行
复制
class Student extends Person {
  grade: number;

  constructor(name: string, age: number, grade: number) {
    super(name, age);
    this.grade = grade;
  }

  study() {
    console.log(`${this.name} is studying in grade ${this.grade}.`);
  }
}

派生类可以继承基类的属性和方法,并可以添加自己的属性和方法。

访问修饰符

TypeScript提供了访问修饰符来控制类的属性和方法的访问权限。

  • public:默认的访问修饰符,公开访问,可以在类的内部和外部访问。
  • private:私有访问,只能在类的内部访问。
  • protected:受保护的访问,只能在类的内部和派生类中访问。
代码语言:javascript
代码运行次数:0
运行
复制
class Person {
  public name: string;      // 公开访问
  private age: number;     // 私有访问
  protected gender: string; // 受保护的访问

  constructor(name: string, age: number, gender: string) {
    this.name = name;
    this.age = age;
    this.gender = gender;
  }
}

类的静态属性和方法

静态属性和方法属于类本身,而不是类的实例。可以使用 static 关键字来定义静态属性和方法。

代码语言:javascript
代码运行次数:0
运行
复制
class MathUtils {
  static PI: number = 3.14159;

  static calculateCircumference(radius: number): number {
    return 2 * MathUtils.PI * radius;
  }
}

静态属性和方法可以通过类名直接访问,而不需要实例化类。

代码语言:javascript
代码运行次数:0
运行
复制
console.log(MathUtils.PI); // 输出: 3.14159

const circumference = MathUtils.calculateCircumference(5);
console.log(circumference); // 输出: 31.4159

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 定义类
  • 类的属性和方法
    • 属性
    • 构造函数
    • 方法
  • 实例化类
  • 类的继承
  • 访问修饰符
  • 类的静态属性和方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档