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