在Typescript中使用接口或类时
我有一个简单的登录场景,需要用户在Typescript中输入电子邮件和密码。我需要创建一些类型来获得这个强类型并将其发送到后端 这应写为:在Typescript中使用接口或类时,typescript,class,web,interface,strong-typing,Typescript,Class,Web,Interface,Strong Typing,我有一个简单的登录场景,需要用户在Typescript中输入电子邮件和密码。我需要创建一些类型来获得这个强类型并将其发送到后端 这应写为: export interface UserLogin { email: string; password: string; } //OR export class UserLogin { email: string; password: string; } 如何知道场景何时使用这些功能?最基本的是,类本质上是一个对象工厂(即对象应该是什么样
export interface UserLogin {
email: string;
password: string;
}
//OR
export class UserLogin {
email: string;
password: string;
}
如何知道场景何时使用这些功能?最基本的是,类本质上是一个对象工厂(即对象应该是什么样子然后实现的蓝图),而接口是一个仅用于类型检查的结构 虽然类可能具有初始化的属性和方法来帮助创建对象,但接口本质上定义了对象可以具有的属性和类型
在您描述的场景中,可以使用接口设置用户登录的类型。最基本的是,类本质上是一个对象工厂(即对象的外观蓝图,然后实现),而接口是一种仅用于类型检查的结构 虽然类可能具有初始化的属性和方法来帮助创建对象,但接口本质上定义了对象可以具有的属性和类型 在您描述的场景中,可以使用接口设置UserLogin的类型 将其发送到后端 通过网络发送类需要额外的努力——如果您使用JSON内容类型,您的类将作为后端代码的普通对象。有关如何将JSON转换回类对象以便调用其方法的问题,请参阅 但是,由于您问题中的类没有方法,所以这并不重要,除非后端代码将使用
instanceof
执行运行时检查
为了避免这些问题,请使用只有数据成员的接口来表示与后端通信的对象
将其发送到后端
通过网络发送类需要额外的努力——如果您使用JSON内容类型,您的类将作为后端代码的普通对象。有关如何将JSON转换回类对象以便调用其方法的问题,请参阅
但是,由于您问题中的类没有方法,所以这并不重要,除非后端代码将使用instanceof
执行运行时检查
为了避免这些问题,请使用只有数据成员的接口来表示与后端通信的对象。实际上两者都可以完成这项工作。如果您只是进行类型检查,我建议您使用接口,因为它是专门为此目的设计的 类和接口是功能强大的结构,不仅有助于面向对象编程,而且有助于TypeScript中的类型检查。类是一个蓝图,我们可以从中创建共享相同配置(属性和方法)的对象。接口是一组描述对象的相关属性和方法,但它们既不提供实现,也不提供初始化
From:实际上两者都能完成任务。如果您只是进行类型检查,我建议您使用接口,因为它是专门为此目的设计的 类和接口是功能强大的结构,不仅有助于面向对象编程,而且有助于TypeScript中的类型检查。类是一个蓝图,我们可以从中创建共享相同配置(属性和方法)的对象。接口是一组描述对象的相关属性和方法,但它们既不提供实现,也不提供初始化
From:如果只需要声明自定义类型,则使用接口。在我看来,有一个非常实用的原因——它们没有被转换成JavaScript,因此生成的代码更短
如果您需要使用构造函数实例化对象,或者使用实例化和注入对象的框架,那么接口将不起作用。然后使用类或抽象类。如果您只需要声明自定义类型,则使用接口。在我看来,有一个非常实用的原因——它们没有被转换成JavaScript,因此生成的代码更短 如果您需要使用构造函数实例化对象,或者使用实例化和注入对象的框架,那么接口将不起作用。然后使用类或抽象类