Verschil tussen typescript-interface versus klasse

Een interface definieert de structuur die wordt gevolgd door het afleiden van klasse. Het is een contract dat door elke entiteit wordt gevolgd, Interface bevat veel dingen als eigenschappen en gebeurtenissen, methoden, en deze worden allemaal als leden van de interface genoemd. Een interface bevat de enige verklaring van deze leden, deze leden worden geïmplementeerd door de klasse Deriving van die interface. Interface trefwoord wordt gebruikt om de interface aan te geven.

Voorbeeld van interfaceverklaring.

Syntaxis:

interface interfacenaam

(

)

interface Medewerker (

firstName: string,

lastName: string,

sayHello: () => string

)

var klant: Medewerker = (

firstName:”Tom”,

lastName:”Hanks”

sayHello: (): string => (return "Hallo daar")

)

console.log ("Klantobject")

console.log (customer.firstName)

console.log (customer.lastName)

console.log (customer.sayHello ())

Bovenstaand voorbeeld definieert een interface. Het klantobject is van het type Medewerker.

Het is nu bindend voor het object om alle eigenschappen te definiëren zoals gespecificeerd door de interface.

Bij het compileren genereert het de volgende JavaScript-code die hieronder wordt gegeven.

// Gegenereerd door typescript 1.8.10

var customer = (firstName: "Tom", lastName: "Hanks",

sayHello: function () (terug "Hallo daar"; )

);

console.log ("Klantobject");

console.log (customer.firstName);

console.log (customer.lastName);

console.log (customer.sayHello ());

De uitvoer van de bovenstaande voorbeeldcode: -

Klant object

Tom

Hanks

Hallo daar

De klasse is een blauwdruk voor een object; het is het concept van Object Oriented Programming-taal. Een klasse biedt een inkapseling van OOP's. Het verpakt gegevensleden en methoden en constructeurs in één eenheid die de klasse wordt genoemd, op deze manier biedt het inkapselingen. Een eerdere klasse werd niet ondersteund door Typescript, het kreeg ondersteuning van een ES6-versie van Typescript. Class-trefwoord wordt gebruikt om klassen in Typescript te maken.

Syntaxis:-

class class_name (

//Te doen

)

een klasse bevat gegevensleden, methoden en constructor;

Gegevensleden worden ook wel een veld genoemd en vertegenwoordigen eigenschappen van Object die door een klasse worden gemaakt

Een juiste stropdas is de status van een object, zoals de kleur van de pen, de hoogte, de breedte wordt genoemd als eigenschap van een object.

Methoden vertegenwoordigen het gedrag van een object zoals penfunctionaliteit aan het schrijven is, koffiemachine kan verschillende soorten koffie maken, dit wordt gedrag van een object genoemd.

Constructors worden gebruikt om een ​​object voor een gedefinieerde klasse te genereren, zodat het als vereiste plaatsen kan worden gebruikt. Het is ook verantwoordelijk voor het initialiseren van een veld van een klasse.

Deze alle drie worden een lid van een klasse genoemd die door klasse in een enkele eenheid is ingekapseld.

Overweeg een klaswerknemer in typografie.

klasse Medewerker (

)

Bij het compileren genereert het de volgende JavaScript-code.

// Gegenereerd door typescript 1.8.10

var Employee = (function () (

functie Medewerker () (

)

terugkeer werknemer;

) ());

Voorbeeld: een klasse declareren

class CarDemo (

// veldaangifte

engine: string;

// constructeursverklaring

constructor (engine: string) (

this.engine = motor

)

// functieverklaring

show (): void (

console.log ("Engine is:" + this.engine)

)

)

In het bovenstaande voorbeeld is de klassennaam CarDemo, met een veldnaam-engine met constructor die de veldnaam-engine initialiseert. Dit trefwoord verwijst naar de huidige klasse-instantie, daarom is dit. engine = engine geschreven, met enkele methode naam - laat zien welke veldwaarde wordt weergegeven die door een constructor is geïnitialiseerd.

Door de bovenstaande code te compileren, wordt de volgende JavaScript-code gegenereerd.

// Gegenereerd door typescript 1.8.10

var CarDemo = (function () (

functie CarDemo (motor) (

this.engine = motor;

)

CarDemo.prototype.show = function () (

console.log ("Engine is:" + this.engine);

);

CarDemo retourneren;

) ());

Instance-objecten van bovenstaande klasse maken

Om een ​​instantie van de klasse te maken, gebruikt u het nieuwe trefwoord gevolgd door de klassenaam. De syntaxis voor hetzelfde wordt hieronder gegeven -

Syntaxis

var object_name = new class_name ((argumenten))

Het nieuwe trefwoord is verantwoordelijk voor instantiatie.

De rechterkant van de uitdrukking roept de constructor op. Aan de constructor moeten waarden worden doorgegeven als deze is ingesteld.

/ een object maken

var obj = new CarDemo ("XXSY1");

// toegang tot het veld

console.log ("Kenmerkwaarde Engine lezen als:" + obj.engine);

// toegang tot de functie

obj.show ();

De uitvoer van de bovenstaande code is als volgt -

Kenmerkwaarde Engine lezen als XXSY1

Functieweergaven Motor is: XXSY1

Head-to-head vergelijking tussen typoscriptinterface versus klasse

Hieronder staat het top 4 verschil tussen de typescript-interface versus de klasse

Belangrijkste verschillen tussen de typescript-interface versus de klasse

Beide typescript-interface versus klasse zijn populaire keuzes in de markt; laten we enkele van de belangrijkste verschillen tussen de typescript-interface en de klasse bespreken:

  1. De interface definieert gestructureerd voor het afleiden van de klasse van die interface. een interface bevat de enige verklaring van ledenfuncties.
  2. De klasse is verantwoordelijk voor het implementeren van de interfacestructuur door de body van de functie van de interface te geven. Het biedt inkapseling door het inpakken van gegevensleden, functies in een box die op deze manier als een klasse wordt genoemd, biedt inkapselingsfuncties van OPP's.
  3. Interface-sleutelwoord wordt gebruikt om een ​​interface te maken met gegevensleden, functies.
  4. Klasse sleutelwoord wordt gebruikt om een ​​klasse te maken die gegevensleden, functies, constructeurs bevat.
  5. Interface volledig verwijderd tijdens compilatie van code. Terwijl klasse niet wordt verwijderd tijdens het compileren van code.
  6. De ene interface kan een andere interface uitbreiden door het trefwoord op deze manier uit te breiden. Interface biedt overerving. Interface breidt geen klasse uit, het definieert een structuur voor de klasse. Interface ondersteunt meerdere overerving door meerdere interfaces samen uit te breiden.
  7. De klasse implementeert de interface door sleutelwoord te implementeren, klasse kan andere klasse uitbreiden, ook door uitgebreide sleutelwoord te gebruiken, op deze manier kan child class bovenliggende klasse gebruiken. Deze functie wordt overerving genoemd, class ondersteunt geen meerdere overervingen omdat tegelijkertijd slechts één interface werd geïmplementeerd door klasse. het is mogelijk met een interface.

Vergelijking tussen typescript-interface versus klasse

Laten we eens kijken naar de gedetailleerde beschrijving van de typescript-interface versus de klasse

Vergelijkingsbasis tussen typescript-interface versus klasse Koppel Klasse
DefinitieEen interface definieert een structuur die wordt gevolgd door klasse af te leiden.Het verpakt gegevensleden en methoden en constructeurs in één eenheid die een klasse wordt genoemd.
GebruikEen structuur voor een entiteit maken.Objectcreatie, inkapseling voor velden, methode
Real-time gebruikOntwerppatroon, projectstructuur ontwerpenImplementaties van gedefinieerde architecturen
Aanmaak trefwoordinterface sleutelwoord wordt gebruikt om een ​​interface te maken.class-sleutelwoord wordt gebruikt om de class te maken.

Conclusie - Typescript-interface versus klasse

Typoscriptinterface versus klasse hebben beide een ander doel op het gebied van softwareontwikkeling. De interface geeft de structurele bouwsteen voor de klasse, terwijl deze structuur wordt geïmplementeerd door de klasse waardoor het object van de klasse wordt gemaakt.

We zullen de interface gebruiken om de basisstructuur van software te ontwikkelen die in de toekomst door een ontwikkelaar wordt ontwikkeld, Class implementeert de interface door een body van de methode van de interface te bieden. Het maken van interfaces is eenvoudig in een beginfase van softwareontwikkeling wanneer een vereiste niet duidelijk is omdat het flexibiliteit biedt om te veranderen, omdat het door een klasse wordt geïmplementeerd.

Aanbevolen artikel

Dit is een gids geweest voor de belangrijkste verschillen tussen de typescript-interface versus de klasse. Hier bespreken we ook de Typescript-interface versus klassensleutelverschillen met infographics en vergelijkingstabel. U kunt ook de volgende artikelen bekijken -

  1. TypeScript Type versus interface verschillen
  2. CoffeeScript versus TypeScript
  3. JavaScript versus TypeScript
  4. TypeScript versus Flow Welke is nuttiger