PROG_WAY_BLOG Telegram 293
В чем заключается разница между интерфейсом и типом?

Для меня большое удивление, что я до сих пор не смог найти нормального материала, где был бы описан этот вопрос. В этом после я планирую исправить эту несправедливость.

Тип — обозначается ключевым словом type — представляет собой либо описание структуры (объекта, функции…), либо набор других типов или структур:

// набор типов
type Identifier = string | boolean;

// описание структуры
type Person = {
name: string;
age: number;
}

// набор типов или структур
type Foo = Person | string;


Интерфейс — обозначается ключевым словом inderface — может описывать только структуры:

interface Props {
title: string;
visible?: boolean;
}


Особенности типов:
1. Только типами можно создать типы-объединения (они же union type):

type Identifier = string | number
type Animal = Dog | Cat


2. Только типами можно создавать кортежи, фиксируя тип элемента массива по индексу и длину массива:

type Cortage = [string, number, boolean]


3. Только с помощью типов можно создавать псевдонимы (они же alias):

type Name = string
type Author = Name


4. Типами проще и красивее создавать описание функций:

type Foo = (a: string) => number

interface Foo {
(a: string): number
}


Особенности интерфейсов:
1. Только интерфейсы имеют перегрузку типов:

interface Person {
name: string
}

interface Person {
age: number
}

const kate: Person = {
name: "Екатерина",
age: 24
}


2. Только интерфейсы могут быть имплементированы:

interface Person {}

class Fireman implements Person {}


В основном, между интерфейсом и типом больше схожестей, чем отличий. Выше я перечислил основные различия между этими двумя сущностями, которого хватит для ответа на любом собеседовании.

Спасибо за прочтение, это важно для меня ❤️

#web #theory #typescript
👍48🔥87🐳2



tgoop.com/prog_way_blog/293
Create:
Last Update:

В чем заключается разница между интерфейсом и типом?

Для меня большое удивление, что я до сих пор не смог найти нормального материала, где был бы описан этот вопрос. В этом после я планирую исправить эту несправедливость.

Тип — обозначается ключевым словом type — представляет собой либо описание структуры (объекта, функции…), либо набор других типов или структур:

// набор типов
type Identifier = string | boolean;

// описание структуры
type Person = {
name: string;
age: number;
}

// набор типов или структур
type Foo = Person | string;


Интерфейс — обозначается ключевым словом inderface — может описывать только структуры:

interface Props {
title: string;
visible?: boolean;
}


Особенности типов:
1. Только типами можно создать типы-объединения (они же union type):

type Identifier = string | number
type Animal = Dog | Cat


2. Только типами можно создавать кортежи, фиксируя тип элемента массива по индексу и длину массива:

type Cortage = [string, number, boolean]


3. Только с помощью типов можно создавать псевдонимы (они же alias):

type Name = string
type Author = Name


4. Типами проще и красивее создавать описание функций:

type Foo = (a: string) => number

interface Foo {
(a: string): number
}


Особенности интерфейсов:
1. Только интерфейсы имеют перегрузку типов:

interface Person {
name: string
}

interface Person {
age: number
}

const kate: Person = {
name: "Екатерина",
age: 24
}


2. Только интерфейсы могут быть имплементированы:

interface Person {}

class Fireman implements Person {}


В основном, между интерфейсом и типом больше схожестей, чем отличий. Выше я перечислил основные различия между этими двумя сущностями, которого хватит для ответа на любом собеседовании.

Спасибо за прочтение, это важно для меня ❤️

#web #theory #typescript

BY progway — программирование, IT


Share with your friend now:
tgoop.com/prog_way_blog/293

View MORE
Open in Telegram


Telegram News

Date: |

"Doxxing content is forbidden on Telegram and our moderators routinely remove such content from around the world," said a spokesman for the messaging app, Remi Vaughn. Add the logo from your device. Adjust the visible area of your image. Congratulations! Now your Telegram channel has a face Click “Save”.! Some Telegram Channels content management tips In the “Bear Market Screaming Therapy Group” on Telegram, members are only allowed to post voice notes of themselves screaming. Anything else will result in an instant ban from the group, which currently has about 75 members. Read now
from us


Telegram progway — программирование, IT
FROM American