Forskel mellem Typescript-interface kontra klasse

En grænseflade definerer strukturen, der efterfølges af derivering af klasse. Det er en kontrakt, der følges af enhver enhed, interface indeholder mange ting som egenskaber og begivenheder, metoder, og disse kaldes alle som medlemmer af interface. En grænseflade indeholder den eneste erklæring fra disse medlemmer, disse medlemmer implementeres af Deriving-klassen for denne grænseflade. Interface nøgleord bruges til at erklære grænsefladen.

Eksempel på grænsefladedeklaration.

Syntaks:

interface interface_navn

(

)

interface Medarbejder (

fornavn: streng,

lastName: streng,

sayHello: () => streng

)

var kunde: Medarbejder = (

fornavn:”Tom”,

Efternavn:”Hanks”,

sayHello: (): string => (return “Hej der”)

)

console.log (“kundeobjekt”)

console.log (customer.firstName)

console.log (customer.lastName)

console.log (customer.sayHello ())

Ovenfor eksempel definerer en grænseflade. Kundeobjektet er af typen Medarbejder.

Det vil nu være bindende for objektet at definere alle egenskaber som specificeret af grænsefladen.

Ved kompilering genererer den følgende JavaScript-kode angivet nedenfor.

// Genereret af typeskrift 1.8.10

var kunde = (firstName: “Tom”, lastName: “Hanks”,

sayHello: funktion () (return “Hej der”; )

);

console.log (“kundeobjekt”);

console.log (customer.firstName);

console.log (customer.lastName);

console.log (customer.sayHello ());

Outputet fra ovenstående eksempelkode: -

Kundeobjekt

Tom

Hanks

Hej

Klassen er en plan for et objekt; det er begrebet objektorienteret programmeringssprog. En klasse giver indkapslingsfunktion for OOP'er. Det indpakker datamedlemmer og metoder og konstruktører i en enkelt enhed, der kaldes klassen, på denne måde giver den indkapslinger. En tidligere klasse blev ikke understøttet af Typescript, den fik støtte fra en ES6-version af Typescript. Klasse nøgleord bruges til at oprette klasser i Typescript.

Syntaks: -

klasse klassens navn (

//at gøre

)

en klasse indeholder datamedlemmer, metoder og konstruktør;

Datamedlemmer kaldes også som et felt, det repræsenterer egenskaber ved Objekt, der er oprettet af en klasse

Et korrekt bånd er tilstanden af ​​et objekt, ligesom Pen's farve, højde, bredden kaldes som egenskaber for et objekt.

Metoder repræsenterer et objekts adfærd, ligesom pen-funktionalitet skriver, kaffemaskine kan lave forskellige typer kaffe, dette kaldes en opførsel af et objekt.

Konstruktører er vant til at generere et objekt til en defineret klasse, så det kan bruges som krævede steder.Det er også ansvarlig for at initialisere et felt i en klasse.

Disse tre kaldes et medlem af en klasse, der er indkapslet af klassen i en enkelt enhed.

Overvej en klasse medarbejder i typeskrift.

klasse medarbejder (

)

Ved kompilering genererer den følgende JavaScript-kode.

// Genereret af typeskrift 1.8.10

var Medarbejder = (funktion () (

funktion Medarbejder () (

)

vende tilbage Medarbejder;

) ());

Eksempel: At erklære en klasse

klasse CarDemo (

// feltdeklaration

motor: string;

// konstruktørerklæring

konstruktør (motor: streng) (

denne.engine = motor

)

// funktionserklæring

show (): ugyldig (

console.log (“Motor er:“ + dette.engine)

)

)

I ovenstående eksempel er klassens navn CarDemo, der har feltnavnemotor med konstruktør, der initialiserer feltnavnsmotoren, dette nøgleord henviser til nuværende klasseforekomst, det er derfor dette. motor = motor skrevet, med en enkelt metodenavn - vis hvilken viser feltværdi, der blev initialiseret af en konstruktør.

Sammenstilling af ovenstående kode genererer den følgende JavaScript-kode.

// Genereret af typeskrift 1.8.10

var CarDemo = (funktion () (

funktion CarDemo (motor) (

denne.engine = motor;

)

CarDemo.prototype.show = funktion () (

console.log (“Motor er:” + dette.engine);

);

returnere CarDemo;

) ());

Oprettelse af enhedsobjekter fra ovenstående klasse

Hvis du vil oprette en forekomst af klassen, bruges det nye søgeord efterfulgt af klassens navn. Syntaks for det samme er angivet nedenfor -

Syntaks

var object_name = nyt class_name ((argumenter))

Det nye nøgleord er ansvarlig for instantiation.

Udtrykets højre side påkalder konstruktøren. Konstruktøren skal have værdier, hvis den er parametriseret.

/ oprette et objekt

var obj = new CarDemo (“XXSY1”);

// adgang til feltet

console.log ("Læse attributværdi Motor som:" + obj.engine);

// adgang til funktionen

obj.show ();

Output fra ovenstående kode er som følger -

Læse attributværdi Motor som XXSY1

Funktionsdisplay Motor er: XXSY1

Sammenligning mellem head-to-head mellem interface til typeskrift og klasse

Nedenfor er de øverste 4 forskelle mellem Typescript-interface vs klasse

Nøgleforskelle mellem Typescript-interface mod klasse

Begge Typescript-interface vs klasse er populære valg på markedet; lad os diskutere nogle af de største forskelle mellem grænsefladen for typeskript kontra klasse:

  1. Grænsefladen definerer struktureret til at udlede klasse af denne grænseflade. en grænseflade indeholder den eneste erklæring om medlemsfunktioner.
  2. Klassen er ansvarlig for implementering af grænsefladestrukturen ved at give strukturen af ​​interfacefunktionen. Den leverer indkapsling ved indpakning af datamedlemmer, funktioner i en boks, der kaldes en klasse på denne måde, den giver indkapslingsfunktioner af OPP'er.
  3. Interface nøgleord bruges til at oprette interface det indeholder data medlemmer, funktioner.
  4. Klasse nøgleord bruges til at oprette en klasse, der indeholder data medlemmer, funktioner, konstruktører.
  5. Grænseflade helt fjernet under kompilering af kode. Mens klassen ikke fjernes under kompilering af kode.
  6. En grænseflade kan udvide en anden grænseflade ved at udvide nøgleord på denne måde interface giver arv. Interface udvider ikke en klasse, det definerer en struktur for klassen. Interface understøtter flere arver ved at udvide flere grænseflader sammen.
  7. Klassen implementerer grænsefladen ved implementering af nøgleord, klasse kan udvide andre klasser også ved at bruge udvider nøgleord på denne måde barneklasse kan bruge forældreklasse denne funktion kaldes arv, klasse understøtter ikke flere arv, fordi ad gangen kun en grænseflade implementeret af klasse. det er muligt med en grænseflade.

Sammenligning mellem Typescript-interface vs klasse

Lad os undersøge den detaljerede beskrivelse af Typescript-interface vs klasse

Grundlag for sammenligning mellem Typescript-interface vs klasse grænseflade klasse
DefinitionEn grænseflade definerer en struktur, der efterfølges af derivering af klasse.Det indpakker datamedlemmer og metoder og konstruktører i en enkelt enhed, der kaldes en klasse.
AnvendelseAt oprette en struktur for en enhed.Oprettelse af objekt, Indkapsling til felter, metode
Brug af realtidDesignmønster, Design af projektstrukturImplementeringer af definerede arkitekturer
Oprettelsesnøgleordinterface-nøgleord bruges til at oprette en interface.klasse nøgleord bruges til at oprette klassen.

Konklusion - Grænseflade af typen vs kontra

Typescript-interface vs klasse har begge et andet formål inden for softwareudviklingsområdet. Grænsefladen giver den strukturelle byggesten til klassen, mens denne struktur implementeres af den klasse, gennem hvilken objektets klasse oprettes.

Vi vil bruge interface til at udvikle grundlæggende struktur af software, som er udviklet i fremtiden af ​​en udvikler, Class implementerer interface ved at give et organ af metoden til interface. Oprettelse af interface er let i en indledende fase af softwareudvikling, når et krav ikke er klart, fordi det giver fleksibilitet til at ændre, fordi det vil blive implementeret af en klasse.

Anbefalet artikel

Dette har været en guide til de største forskelle mellem Typescript-interface vs klasse. Her diskuterer vi også Typescript-interface mellem klassens nøgleforskelle med infografik og sammenligningstabel. Du kan også se på de følgende artikler -

  1. TypeScript-type vs interfaceforskelle
  2. CoffeeScript vs TypeScript
  3. JavaScript vs TypeScript
  4. TypeScript vs flow, hvilket er mere nyttigt

Kategori: