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:
- De interface definieert gestructureerd voor het afleiden van de klasse van die interface. een interface bevat de enige verklaring van ledenfuncties.
- 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.
- Interface-sleutelwoord wordt gebruikt om een interface te maken met gegevensleden, functies.
- Klasse sleutelwoord wordt gebruikt om een klasse te maken die gegevensleden, functies, constructeurs bevat.
- Interface volledig verwijderd tijdens compilatie van code. Terwijl klasse niet wordt verwijderd tijdens het compileren van code.
- 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.
- 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 |
Definitie | Een 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. |
Gebruik | Een structuur voor een entiteit maken. | Objectcreatie, inkapseling voor velden, methode |
Real-time gebruik | Ontwerppatroon, projectstructuur ontwerpen | Implementaties van gedefinieerde architecturen |
Aanmaak trefwoord | interface 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 -
- TypeScript Type versus interface verschillen
- CoffeeScript versus TypeScript
- JavaScript versus TypeScript
- TypeScript versus Flow Welke is nuttiger