我有一个简单的登录场景,需要用户在Typescript中输入邮箱和密码.我需要创建一些类型来将这个强类型发送到后端.

这应写为:

export interface UserLogin {
  email: string;
  password: string;
}
//OR
export class UserLogin {
  email: string;
  password: string;
}

如何知道在什么情况下使用这些工具?

推荐答案

从最基本的Angular 来看,class基本上是object factory(即一个对象应该是什么样子的蓝图,然后实现),而interface是一个仅用于type-checking的 struct .

虽然class可能有初始化的属性和方法来帮助创建对象,但interface基本上定义了对象可以拥有的属性和类型.

在您描述的场景中,可以使用interface设置UserLogin的类型.

Typescript相关问答推荐

当两个参数具有相同的通用类型时,如果没有第一个参数,则递减约束默认会导致第二个参数的错误推断

为什么AB和CD这两种类型在TypScript中可以相互分配?

React Router SR:useLocate()只能在路由组件的上下文中使用

判断对象A中存在的对象B的键是否存在对象A中键的另一个数组值中

排序更改数组类型

如何根据数据类型动态注入组件?

如何基于对象关键字派生类型?

无法从应用程序内的库导入组件NX Expo React Native

如何在第一次加载组件时加载ref数组

如何在TypeScrip面向对象程序设计中用方法/属性有条件地扩展类

打印脚本丢失函数的泛型上下文

在函数中打字推断记录的关键字

ANGLING v17 CLI默认设置为独立:延迟加载是否仍需要@NgModule进行路由?

在正常函数内部调用异步函数

在抽象类属性定义中扩展泛型类型

基于闭包类型缩小泛型类型脚本函数的范围

如何将对象的字符串文字属性用作同一对象中的键类型

为什么我会得到一个;并不是所有的代码路径都返回一个值0;switch 中的所有情况何时返回或抛出?(来自vsCode/TypeScript)

无法使用prisma中的事务更新记录

Typescript 是否可以区分泛型参数 void?