TypeScript 从听说到入门(下篇)
2023-11-04 15:39:29
TypeScript 是一种强大的 JavaScript 扩展,集成了静态类型、面向对象编程和很多其他现代特性。它能够提供卓越的开发体验,有利于提高代码质量,减少错误。
很多开发者对 TypeScript 的评价是:一开始没觉得有什么,但越用越离不开。它能够快速上手,基本能力的获取比较简单。不过,若想深入使用 TypeScript,掌握它的特性和玩法,就需要花费一番功夫了。本篇将涵盖面向对象编程、访问控制修饰符、类和接口、泛型四个方面。
我们先来聊聊面向对象编程。面向对象编程是一种编程范式,它把对象和行为封装起来,然后通过这些对象和行为之间的交互来实现程序的逻辑。在 TypeScript 中,可以通过创建一个 class 来定义一个对象。比如:
class Person {
constructor(public name: string, public age: number) {}
greet() {
console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
}
}
这个类定义了一个 Person
对象,它有两个属性:name
和 age
。它还定义了一个 greet
方法,该方法会在被调用时输出一条信息。
接下来,我们来讨论一下访问控制修饰符。TypeScript 为访问控制提供了三个修饰符:public
、protected
和 private
。public
修饰符表示该成员对所有人都是可见的,protected
修饰符表示该成员只能被该类及其派生类访问,private
修饰符表示该成员只能被该类访问。
访问控制修饰符可以提高代码的安全性和可维护性。例如,如果我们想创建一个只允许该类及其派生类访问的成员,就可以使用 protected
修饰符。这样,我们就能够在该类及其派生类中使用该成员,而在其他类中则不能使用该成员。
接着,我们来讨论一下类和接口。类是一种用来创建对象的模板,它定义了对象的属性和方法。接口是一种定义对象的行为的契约,它定义了对象必须具有的方法和属性。
TypeScript 中的类和接口是相互补充的。我们可以使用类来创建对象,然后使用接口来定义这些对象必须具有的行为。这样做的好处是,我们可以轻松地重用代码,因为我们可以使用同一个接口来定义多个类。
最后,我们来讨论一下泛型。泛型是一种定义参数化类型的方法。我们可以使用泛型来创建可以处理不同类型数据的类和接口。
TypeScript 中的泛型非常强大,它可以用于各种场景。例如,我们可以使用泛型来创建一个可以处理任何类型数据的数组:
class Array<T> {
private data: T[];
constructor() {
this.data = [];
}
add(item: T) {
this.data.push(item);
}
get(index: number): T {
return this.data[index];
}
}
这个数组可以存储任何类型的数据。我们可以通过指定数组的泛型参数来指定数组中存储的数据类型。例如,我们可以创建一个存储字符串的数组:
const stringArray = new Array<string>();
也可以创建一个存储数字的数组:
const numberArray = new Array<number>();