在本文中,我们将了解 TypeScript 中的 “interface” 和 “Classes” 之间的区别。
接口:接口是用于type-checking的虚拟结构。在TypeScript我们使用接口关键词创建具有身份的新接口。它为相同的数据类型创建结构。接口是用名称和类型定义对象的属性和方法的结构。
用法:
interface New_Interface{ // This is interface Body }
特征:
- 它具有松耦合。
- 它支持多重继承。
示例 1:
Javascript
// Interface for Class
interface ForClass {
readonly var1:string;
}
let newclass: ForList = {var1:"Interface"};
console.log(newclass);
输出:
{ var1: 'Interface' }
示例 2:
Javascript
// Interface for Object with extends function
interface ForObj {
First: string
}
interface forNewObj extends ForObj {
Second: number
}
let newArray: forNewObj = {
First: "Interface for Object",
Second: 2
};
console.log(newArray);
输出:
{ First: 'Interface for Object', Second: 2 }
Classes: 它们是对象的骨架,我们用它来实现对象。在 TypeScript 中,我们使用 class 关键字来创建对象的构造函数。它可以有属性、方法和变量。
用法:
class geeks { // Class property and methods // are created here }
特征:
- 在类中,它支持成员可见性。
- 它支持成员重写。
- 它支持继承。
示例 1:
Javascript
const Table_Object = {
// field of class
Size : 32,
// Collection field
contents : ["Book","Pen"],
// Function
print : function() {
console.log("hello Geeks")
}
}
console.log(Table_Object);
输出:
{ Size: 32, contents: [ 'Book', 'Pen' ], print: [Function: print] }
示例 2:
Javascript
class Geeks {
name : string ;
articles: number ;
cp_problems: number;
// Constructor of class
constructor(name:string, articles: number, cp_problems: number) {
this.name = name;
this.articles = articles;
this.cp_problems = cp_problems;
}
// About object
About() : void {
console.log("Name of Geeks: " + this.name );
console.log("No. of articles by Geeks: "
+ this.articles);
console.log("No. of cp problems sol by Geeks: "
+ this.cp_problems)
}
}
var geek1 = new Geeks("Abhinav", 87, 560);
geek1.About();
输出:
Name of Geeks: Abhinav No. of articles by Geeks: 87 No. of cp problems sol by Geeks: 560
接口和类的区别如下:
Interface |
Classes |
---|---|
我们可以使用interface关键字创建接口。 即接口 Interface_Name{ \\ Interface Body } |
我们可以使用 class 关键字创建类。 即类 Class_Name{ \\ 类主体 } |
接口蓝图主要是对象的Type结构。即它是仅定义内部参数类型的对象。 | 类是对象的蓝图,即创建目的类是我们实现代码对象的方式。 |
它用于类型检查目的。 TypeScript语言接口的使用主要是检查对象中参数的类型。 | 类型脚本中的类用于为某些东西创建对象。它用于实现对象。 |
我们无法在打字稿中使用 new 创建接口实例。这意味着我们无法在 Typescript 中创建实例的副本。 | 我们可以在 TypeScript 中创建该类的新实例。这意味着我们可以使用 new 关键字创建类的副本。 |
接口是虚拟结构。意味着它仅出现在 TypeScript 代码中,而不出现在 TypeScript 编译的 JavaScript 代码中。 | 它始终存在于将 TypeScript 编译为 JavaScript 后的代码中。 |
相关用法
- TypeScript interface和type的区别用法及代码示例
- TypeScript Number toExponential()用法及代码示例
- TypeScript Number toFixed()用法及代码示例
- TypeScript Number toPrecision()用法及代码示例
- TypeScript Number toString()用法及代码示例
- TypeScript String charAt()用法及代码示例
- TypeScript String charCodeAt()用法及代码示例
- TypeScript String concat()用法及代码示例
- TypeScript String indexOf()用法及代码示例
- TypeScript String lastIndexOf()用法及代码示例
- TypeScript String localeCompare()用法及代码示例
- TypeScript String replace()用法及代码示例
- TypeScript String search()用法及代码示例
- TypeScript String slice()用法及代码示例
- TypeScript String split()用法及代码示例
- TypeScript String substr()用法及代码示例
- TypeScript String substring()用法及代码示例
- TypeScript Array every()用法及代码示例
- TypeScript Array filter()用法及代码示例
- TypeScript Array forEach()用法及代码示例
- TypeScript Array indexOf()用法及代码示例
- TypeScript Array join()用法及代码示例
- TypeScript Array lastIndexOf()用法及代码示例
- TypeScript Array map()用法及代码示例
- TypeScript Array push()用法及代码示例
注:本文由纯净天空筛选整理自satyam00so大神的英文原创作品 Difference between interfaces and classes in TypeScript。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。