📅  最后修改于: 2023-12-03 15:05:39.476000             🧑  作者: Mango
在 TypeScript 中,接口和类都是非常重要的概念。它们都用于建立对象的类型约束,但是它们之间有一些不同点。下面我们将分别介绍接口和类的特性和区别。
接口是定义一个对象类型的约束,它只描述了该对象应该包含哪些属性和方法,但并不提供属性和方法的具体实现。在 TypeScript 中定义一个接口的方式为:
interface Person {
name: string;
age: number;
sayHello(): void;
}
这个接口定义了一个包含 name
和 age
两个字符串属性和一个 sayHello
方法的对象类型。使用该接口约束的对象必须满足这些条件,代码如下:
const person: Person = {
name: "Tom",
age: 18,
sayHello() {
console.log("Hello!");
}
};
可以看到,使用该接口约束的对象必须拥有 name
和 age
属性和 sayHello
方法,否则会编译错误。
另外,接口还有一些高级用法,比如可选属性、只读属性、函数类型等,这些可以根据实际需求来使用。
类是面向对象编程的基础概念,它描述了对象的属性和方法,并提供了属性和方法的具体实现。在 TypeScript 中定义一个类的方式为:
class Animal {
name: string;
constructor(name: string) {
this.name = name;
}
sayHello() {
console.log(`My name is ${this.name}`);
}
}
这个类定义了一个 Animal
类型,它拥有 name
属性和 sayHello
方法。使用该类创建对象的方式为:
const cat = new Animal("Tom");
cat.sayHello(); // 输出 "My name is Tom"
可以看到,使用 new
关键字可以创建该类的实例,并且可以调用该实例的方法。
另外,类还有一些高级用法,比如继承、抽象类、访问修饰符等,这些也可以根据实际需求来使用。
接口和类都可以用于描述对象类型,但它们的作用不同,主要体现在以下几个方面:
interface
关键字,定义类使用 class
关键字,在使用上也有一些不同。总的来说,接口和类各有各的优势和适用场景,需要根据实际需求来选择其中的一种或同时使用。