当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


TypeScript interfaces和classes的区别用法及代码示例


在本文中,我们将了解 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 后的代码中。


相关用法


注:本文由纯净天空筛选整理自satyam00so大神的英文原创作品 Difference between interfaces and classes in TypeScript。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。