前言
TypeScript是微软开发的一个开源的编程语言,通过在JavaScript的基础上添加静态类型定义构建而成。TypeScript通过TypeScript编译器或Babel转译为JavaScript代码,可运行在任何浏览器,任何操作系统。 TypeScript扩展了JavaScript的语法,所以任何现有的JavaScript程序可以运行在TypeScript环境中。TypeScript是为大型应用的开发而设计,并且可以编译为JavaScript。
TypeScript类的使用记录
- 类的定义和声明:
typescript
class Person {
private name: string;
constructor(name: string) {
this.name = name;
}
sayHello() {
console.log(`Hello, my name is ${this.name}.`);
}
}
- 属性和方法的定义和访问修饰符:
typescript
复制代码
class Person {
private name: string;
protected 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.`);
}
}
- 类的继承和多态性:
typescript
复制代码
class Student extends Person {
private grade: number;
constructor(name: string, age: number, grade: number) {
super(name, age);
this.grade = grade;
}
sayHello() {
console.log(`Hello, my name is ${this.name}, I'm ${this.age} years old, and I'm in grade ${this.grade}.`);
}
}
TypeScript泛型的分类
一、泛型函数
- 定义函数时不预设具体类型,使用泛型参数T代替
- 调用时传入具体类型,T会被自动替换
- 灵活适用多种类型,也可以添加多个泛型参数 泛型函数可以定义多种类型的参数和返回值,增加灵活性。
二、泛型接口
- 接口中使用泛型参数定义结构- 实现该接口的类可以传入不同的具体类型
- 既定义了通用接口结构,又保证了类型安全 泛型接口定义函数和类结构。
三、泛型类
- 类中可以使用泛型类型定义成员
- 创建类实例时可以传入具体的类型
- 不同的实例可作用于不同类型,提高复用性 泛型类可以定义多种类型的成员变量。
四、泛型约束
- 使用继承和接口约束泛型- 限制泛型的类型范围
- 既保证灵活性又增加代码安全性
- 通常将泛型类型约束为具有共同属性的类型 可以用接口和继承来实现对泛型的约束:
总结
通过TypeScript的类和泛型特性,可以在代码中实现更高的灵活性和安全性。类的继承、多态性、抽象类和接口使得代码更加模块化和可复用,而泛型的使用则增加了代码的通用性和可扩展性。通过使用类型约束,我们可以避免运行时错误和类型错误,提高代码的可维护性。因此,在TypeScript中合理地使用类和泛型,并加以类型约束,有助于提高代码的质量和开发效率。