web:ts中class、interface、type的区别
简述
class
:是值的模板,也是类型的模板。它在编译后会产生实际的 JavaScript 代码。
interface
和 type
:仅用于定义类型。它们在编译后会被完全擦除,不会生成任何 JavaScript 代码。
Class (类)
class
是 ES6 引入并也被 TypeScript 强化的概念。它同时扮演两个角色:
-
运行时存在的实体:它是一个构造函数,用于创建对象实例。编译后会在 JavaScript 中保留。
-
类型注解:它同时定义了一个类型,这个类型描述了该类实例的形状(所具有的属性和方法)。
// 定义一个 Class
class Person {name: string;age: number;constructor(name: string, age: number) {this.name = name;this.age = age;}greet() {console.log(`Hello, my name