Różnica między interfejsem maszynopisu a klasą

Interfejs definiuje strukturę, po której następuje wyprowadzenie klasy. Jest to umowa, za którą podąża każda jednostka, Interfejs zawiera wiele rzeczy, takich jak właściwości, zdarzenia, metody i wszystkie one są nazywane członkami interfejsu. Interfejs zawiera jedyną deklarację tych członków, członkowie ci zostaną zaimplementowani przez klasę Deriving tego interfejsu. Słowo kluczowe interfejsu służy do deklarowania interfejsu.

Przykład deklaracji interfejsu.

Składnia:

interfejs nazwa_interfejsu

(

)

interfejs Pracownik (

firstName: string,

lastName: string,

sayHello: () => string

)

var klient: pracownik = (

firstName: „Tom”,

lastName: „Hanks”,

sayHello: (): string => (return „Cześć tam”)

)

console.log („Obiekt klienta”)

console.log (customer.firstName)

console.log (customer.lastName)

console.log (customer.sayHello ())

Powyższy przykład definiuje interfejs. Obiekt klienta jest typu Pracownik.

Będzie teraz wiązał obiekt, aby zdefiniować wszystkie właściwości określone przez interfejs.

Podczas kompilacji wygeneruje poniższy kod JavaScript podany poniżej.

// Wygenerowane przez maszynopis 1.8.10

var customer = (firstName: „Tom”, lastName: „Hanks”,

sayHello: function () (return „Cześć tam”; )

);

console.log („Obiekt klienta”);

console.log (customer.firstName);

console.log (customer.lastName);

console.log (customer.sayHello ());

Dane wyjściowe powyższego przykładowego kodu: -

Obiekt klienta

Tomek

Hanks

cześć

Klasa jest planem dla obiektu; jest to koncepcja języka programowania obiektowego. Klasa zapewnia funkcję enkapsulacji OOP. Łączy członków danych, metody i konstruktory w jedną całość, która nazywa się klasą, w ten sposób zapewnia enkapsulacje. Wcześniejsza klasa nie była obsługiwana przez Typescript, uzyskała wsparcie z wersji ES6 Typescript. Słowo kluczowe class służy do tworzenia klas w maszynopisie.

Składnia:-

klasa nazwa_klasy (

//do zrobienia

)

klasa zawiera elementy danych, metody i konstruktor;

Członkowie danych nazywani również polami, reprezentują właściwości Object, który jest tworzony przez klasę

Prawidłowe powiązanie to stan obiektu, taki jak kolor pióra, wysokość, szerokość zostanie wywołana jako właściwość obiektu.

Metody reprezentują zachowanie obiektu, takie jak pisanie za pomocą pióra, ekspres do kawy może wytwarzać różne rodzaje kawy, które nazywane są zachowaniem obiektu.

Konstruktory służą do generowania obiektu dla zdefiniowanej klasy, dzięki czemu można go użyć w wymaganych miejscach. Odpowiada również za inicjalizację pola klasy.

Wszystkie te trzy nazywane są członkami klasy, która jest zamknięta w klasie w jednej jednostce.

Rozważ klasowego pracownika w maszynopisie.

pracownik klasy (

)

Podczas kompilacji wygeneruje następujący kod JavaScript.

// Wygenerowane przez maszynopis 1.8.10

var Pracownik = (funkcja () (

funkcja Pracownik () (

)

pracownik powrotny;

) ());

Przykład: deklarowanie klasy

klasa CarDemo (

// deklaracja pola

silnik: ciąg;

// deklaracja konstruktora

konstruktor (silnik: ciąg) (

this.engine = silnik

)

// deklaracja funkcji

show (): void (

console.log („Engine is:” + this.engine)

)

)

W powyższym przykładzie nazwa klasy to CarDemo, ponieważ silnik nazwy pola ma konstruktor inicjujący silnik nazwy pola, to słowo kluczowe odnosi się do bieżącego wystąpienia klasy, dlatego to. silnik = silnik zapisany, posiadający pojedynczą nazwę metody - pokazuje, która wartość pola jest inicjalizowana przez konstruktor.

Kompilacja powyższego kodu wygeneruje następujący kod JavaScript.

// Wygenerowane przez maszynopis 1.8.10

var CarDemo = (function () (

funkcja CarDemo (silnik) (

this.engine = silnik;

)

CarDemo.prototype.show = function () (

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

);

zwrócić CarDemo;

) ());

Tworzenie obiektów instancji wyższej klasy

Aby utworzyć instancję klasy, użyte zostało nowe słowo kluczowe, a następnie nazwa klasy. Składnia tego samego jest podana poniżej -

Składnia

var nazwa_obiektu = nowa nazwa_klasy ((argumenty))

Nowe słowo kluczowe odpowiada za tworzenie instancji.

Prawa strona wyrażenia wywołuje konstruktor. Konstruktor powinien otrzymać wartości, jeśli jest sparametryzowany.

/ tworzenie obiektu

var obj = nowy CarDemo („XXSY1”);

// dostęp do pola

console.log („Odczytywanie wartości atrybutu Engine as:” + obj.engine);

// dostęp do funkcji

obj.show ();

Dane wyjściowe powyższego kodu są następujące -

Odczytywanie wartości atrybutu Engine jako XXSY1

Wyświetlacze funkcji Silnik to: XXSY1

Bezpośrednie porównanie między interfejsem maszynopisu a klasą

Poniżej znajduje się 4 największa różnica między interfejsem maszynopisu a klasą

Kluczowe różnice między interfejsem maszynopisu a klasą

Oba interfejsy maszynopisu i klasy są popularnymi wyborami na rynku; omówmy niektóre z głównych różnic między interfejsem maszynopisu a klasą:

  1. Interfejs definiuje strukturę dla wyprowadzania klasy tego interfejsu. interfejs zawiera jedyną deklarację funkcji składowych.
  2. Klasa jest odpowiedzialna za implementację struktury interfejsu, przekazując treść funkcji interfejsu. Zapewnia hermetyzację poprzez zawijanie elementów danych, funkcje w polu, które jest nazywane klasą, w ten sposób zapewnia funkcje enkapsulacji OPP.
  3. Słowo kluczowe interfejsu służy do tworzenia interfejsu zawierającego elementy danych, funkcje.
  4. Słowo kluczowe class służy do tworzenia klasy, która zawiera elementy danych, funkcje, konstruktory.
  5. Interfejs całkowicie usunięty podczas kompilacji kodu. Podczas gdy klasa nie usuwa podczas kompilacji kodu.
  6. Jeden interfejs może rozszerzyć inny interfejs poprzez rozszerzenie słowa kluczowego w ten sposób interfejs zapewnia dziedziczenie. Interfejs nie rozszerza klasy, określa jej strukturę. Interfejs obsługuje wiele dziedziczeń, rozszerzając jednocześnie wiele interfejsów.
  7. Klasa implementuje interfejs za pomocą słowa kluczowego implementuje, klasa może rozszerzyć inną klasę również za pomocą słowa kluczowego extends w ten sposób, że klasa potomna może korzystać z klasy nadrzędnej, ta funkcja nazywa się dziedziczeniem, klasa nie obsługuje wielu spadków, ponieważ jednocześnie tylko jeden interfejs jest implementowany przez klasę. jest to możliwe dzięki interfejsowi.

Porównanie interfejsu maszynopisu z klasą

Przyjrzyjmy się szczegółowemu opisowi interfejsu Typescript vs klasa

Podstawa porównania między interfejsem maszynopisu a klasą Berło Klasa
DefinicjaInterfejs definiuje strukturę, po której następuje wyprowadzenie klasy.Łączy członków danych, metody i konstruktory w jedną całość, która nazywa się klasą.
StosowanieAby utworzyć strukturę dla encji.Tworzenie obiektu, enkapsulacja pól, metoda
Wykorzystanie w czasie rzeczywistymWzorzec projektowy, Projektowanie struktury projektuImplementuje zdefiniowane architektury
Słowo kluczowe tworzeniaSłowo kluczowe interfejs służy do tworzenia interfejsu.słowo kluczowe class służy do utworzenia klasy.

Wniosek - interfejs maszynopisu a klasa

Interfejs maszynopisu i klasa mają inny cel w obszarze tworzenia oprogramowania. Interfejs podaje strukturalny blok konstrukcyjny dla klasy, podczas gdy struktura ta implementuje klasę, poprzez którą utworzono obiekt klasy.

Interfejs wykorzystamy do opracowania podstawowej struktury oprogramowania, która zostanie opracowana w przyszłości przez programistę, Class implementuje interfejs, udostępniając treść metody interfejsu. Tworzenie interfejsu jest łatwe w początkowej fazie tworzenia oprogramowania, gdy wymaganie nie jest jasne, ponieważ zapewnia elastyczność w zakresie zmiany, ponieważ zostanie zaimplementowane przez klasę.

Polecany artykuł

Jest to przewodnik po najważniejszych różnicach między interfejsem maszynopisu a klasą. Tutaj omawiamy również interfejs Typescript vs. różnice między kluczami klasowymi z infografiką i tabelą porównawczą. Możesz także zapoznać się z następującymi artykułami -

  1. TypeScript Type vs. Różnice interfejsu
  2. CoffeeScript vs TypeScript
  3. JavaScript vs TypeScript
  4. TypeScript vs Flow Który z nich jest bardziej użyteczny