【发布时间】:2019-01-13 22:55:29
【问题描述】:
我有一个简单的登录场景,需要用户在 Typescript 中输入电子邮件和密码。我需要创建一些类型来获得这种强类型并将其发送到后端。
这应该写成:
export interface UserLogin {
email: string;
password: string;
}
//OR
export class UserLogin {
email: string;
password: string;
}
以及如何知道何时使用这些方案?
【问题讨论】:
-
一个主要区别是接口纯粹是一个打字稿结构,只在编译时使用——也就是说,接口对最终转译的 javascript 输出没有任何添加,它们完全消失了(这很好! )。然而,类存在于 javascript 中,因此您在 typescript 代码中创建的每个类也将存在于 javascript 输出中。如果您想要/需要的只是在编译时进行类型检查,那么这是使您的 js 文件变大的膨胀。因此,如果满足您的需求,请坚持使用接口,切勿抢先添加类,仅在需要时才添加类。
标签: typescript class web interface strong-typing