TypeScript 类和接口的区别
类
TypeScript是一种面向对象的JavaScript语言,支持类、接口、多态、数据绑定等编程特性。TypeScript从 ES6 和以后的版本中支持这些特性。
类是用于创建 可重用 组件的基本实体。它是一组具有共同属性的对象。从面向对象的角度来看,类是创建对象的模板或蓝图。它是一个逻辑实体。
在类定义中,我们可以定义以下属性:
字段: 它是在类中声明的变量。
方法: 它代表对象的一个动作。
构造函数: 它负责在内存中初始化对象。
嵌套类和接口: 这意味着一个类可以包含另一个类。
声明类的语法
我们可以使用TypeScript中的 class 关键字来声明一个类。以下语法解释了类的声明。
class <class_name>{
field;
method;
}
要阅读更多信息,请点击这里。
接口
接口是应用程序中的结构,它充当 合约 。它定义了类遵循的语法,这意味着实现接口的类必须实现所有其成员。我们不能实例化接口,但可以通过实现它的类对象来引用它。
接口只包含方法和字段的 声明 ,而不包含实现。我们不能使用它来构建任何东西。一个类继承一个接口,而实现接口的类定义了接口的所有成员。
TypeScript编译器将其编译为JavaScript时,接口将从JavaScript文件中移除。因此,它的目的仅在开发阶段起作用。
接口声明
我们可以使用TypeScript中的 interface 关键字声明一个接口。下面的语法解释了接口的声明。
interface interface_name {
// variables' declaration
// methods' declaration
}
使用接口
我们可以使用接口进行以下事情:
- 验证特定属性的结构
- 作为参数传递的对象
- 从函数返回的对象
TypeScript类 vs TypeScript接口
对比项 | TypeScript类 | TypeScript接口 |
---|---|---|
介绍 | 类是用来创建可重用组件的基本实体。它是具有共同属性的对象组。它可以包含属性,如字段,方法,构造函数等。 | 接口定义了在应用程序中充当合同的结构。它只包含方法和字段的声明,而不包含实现。 |
用法 | 用于对象创建,封装字段和方法。 | 用于创建实体的结构。 |
关键字 | 可以使用class关键字创建一个类。 | 可以使用interface关键字创建一个接口。 |
编译 | 类在代码编译过程中不会消失。 | 接口在代码编译过程中完全消失。 |
实时使用 | 设计模式,设计项目结构 | 实现定义的架构 |
实例化 | 可以实例化类来创建对象。 | 不能实例化接口。 |
方法 | 类的方法用于执行特定操作。 | 接口中的方法是纯抽象的(只有声明,没有主体)。 |
访问修饰符 | 类的成员可以是public,protected或private。 | 接口的成员始终是public的。 |
构造函数 | 类可以有一个构造函数。 | 接口不能有构造函数。 |
实现/扩展 | 类只能扩展一个类,但可以实现任意数量的接口。 | 接口可以扩展多个接口,但不能实现任何接口。 |