在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; } 如何知道场景何时使用这些功能?最基本的是,类本质上是一个对象工厂(即对象应该是什么样

我有一个简单的登录场景,需要用户在Typescript中输入电子邮件和密码。我需要创建一些类型来获得这个强类型并将其发送到后端

这应写为:

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,因此生成的代码更短

如果您需要使用构造函数实例化对象,或者使用实例化和注入对象的框架,那么接口将不起作用。然后使用类或抽象类