typescript函数和类

typescript函数

函数是一种可重复使用的代码块,它可以接受输入参数并返回结果。

在TypeScript中,我们可以使用以下特性来定义函数:

声明函数:使用function关键字来声明一个函数。

可选参数和默认参数:函数的参数可以设置为可选的或者设置默认值。

剩余参数:函数可以接受不定数量的参数。

函数重载:在TypeScript中可以为一个函数编写多个函数类型的定义,从而实现函数重载。

示例代码:
// 声明函数
function greet(name: string): void {
  console.log(`Hello, ${name}!`);
}

// 可选参数和默认参数
function greetWithPrefix(name: string, prefix?: string = "Mr."): void {
  console.log(`Hello, ${prefix} ${name}!`);
}

// 剩余参数
function sum(...numbers: number[]): number {
  return numbers.reduce((total, num) => total + num, 0);
}

// 函数重载
function getFullName(firstName: string, lastName: string): string;
function getFullName(firstName: string, lastName: string, title: string): string;
function getFullName(firstName: string, lastName: string, title?: string): string {
  if (title) {
    return `${title} ${firstName} ${lastName}`;
  } else {
    return `${firstName} ${lastName}`;
  }
}

typescript 类

类是面向对象编程的基本构建块。

在TypeScript中,我们可以使用以下特性来定义类:

类的基本语法:使用class关键字来定义一个类。

构造函数和构造器参数:使用constructor方法来定义类的构造函数,用于初始化对象的属性。

访问修饰符:类的属性和方法可以使用public、private、protected等访问修饰符来控制其可访问性。

继承和子类:使用extends关键字来实现类的继承。

抽象类:使用abstract关键字来定义抽象类,它不能被实例化,只能被继承。

示例代码:

class Person {
  firstName: string;
  lastName: string;

  constructor(firstName: string, lastName: string) {
    this.firstName = firstName;
    this.lastName = lastName;
  }

  getFullName(): string {
    return `${this.firstName} ${this.lastName}`;
  }
}

class Employee extends Person {
  jobTitle: string;

  constructor(firstName: string, lastName: string, jobTitle: string) {
    super(firstName, lastName); // 调用父类的构造函数
    this.jobTitle = jobTitle;
  }

  getFullName(): string {
    return `${super.getFullName()} - ${this.jobTitle}`;
  }
}

const emp = new Employee("John", "Doe", "Software Engineer");
console.log(emp.getFullName()); // Output: John Doe - Software Engineer


在这个示例中,我们定义了一个Person类和一个Employee子类。Employee类继承了Person类,并在构造函数中调用了父类的构造函数。同时,Employee类中重写了getFullName方法,通过super关键字调用了父类的getFullName方法,并添加了额外的jobTitle信息。

网友评论0