ЈаваСцрипт алати Флов и ТипеСцрипт су слични у многим аспектима. Међутим, они се разликују у погледу њихове функционалности и способности као статичких давача.

Сазнајте како се Флов и ТипеСцрипт упоређују и који је најбољи статички проверивач за ваш следећи пројекат.

Шта је проток?

Флов је алатка за проверу статичког типа за ЈаваСцрипт, коју је креирао Фацебоок да унапред идентификује грешке код компајлирања и извршавања. То ради праћењем вредности које ваш код пропушта и како се њихови типови података мењају током времена. Овај статички систем провере побољшава поузданост и читљивост. Такође помаже да се смањи појава грешака у вашем ЈаваСцрипт коду.

Шта је ТипеСцрипт?

ТипеСцрипт није само провера типова, као што је Флов, већ снажно куцани програмски језик. Мицрософт је креирао језик, изградивши га на врху ЈаваСцрипт-а.

По договору, требало би да креирате ТипеСцрипт датотеке са екстензијом датотеке .тс. Можете да компајлирате ТипеСцрипт датотеку у ЈаваСцрипт код, тако да где год се ЈаваСцрипт покреће, ТипеСцрипт такође може да ради.

Конфигурисање тока за вашу ЈаваСцрипт апликацију

Можете интегрисати Флов у било који ЈаваСцрипт оквир који одлучите да користите за свој пројекат. Мораћете да конфигуришете ЈаваСцрипт компајлер као што је Бабел да управља свим типовима тока у вашем коду и преведе га у ванилла ЈаваСцрипт.

Да бисте инсталирали Флов у свој пројекат, покрените следећу команду:

предиво додати --дев флов-бин

Затим, требало би да глобално инсталирате интерфејс командне линије Флов. Овај ЦЛИ обезбеђује неколико команди за изградњу апликација протока.

На мацОС-у, користите Хомебрев да инсталирате Флов ЦЛИ:

варити инсталирај флов-цли

Мораћете да знате како да користите Виндовс ПоверСхелл да бисте инсталирали Флов на Виндовс машини.

Да бисте инсталирали Флов ЦЛИ на Виндовс, покрените ову скрипту у свом ПоверСхелл терминалу:

иек "& { $(ирм '<https://storage.googleapis.com/flow-cli/install.ps1>') }"

Пројекти тока захтевају а .фловцонфиг фајл за све потребне конфигурације алата.

Покрените ову команду да бисте креирали конфигурациону датотеку Флов у новом или постојећем пројекту:

нпм рун флов инит

Имајте на уму да одређени оквири могу подразумевано да испоручују пројекте са Флов конфигурационим фајлом.

Последња ствар коју треба да урадите је да додате скрипту Флов у своју пацкаге.јсон фајл:

"скрипте": {
"ток": "ток"
},

Сада сте успешно конфигурисали Флов за покретање у вашој ЈаваСцрипт апликацији.

Подешавање ТипеСцрипт-а у вашем пројекту

Покрените следећу команду да бисте инсталирали ТипеСцрипт у свој пројекат:

нпм инсталирај стројопис --саве-дев

Такође би требало да инсталирате компајлер за компајлирање ТипеСцрипт кода у ванилла ЈаваСцрипт. Можда ћете такође морати подесите ТипеСцрипт конфигурацију за бољи ток рада искуство.

Инсталирајте ТипеСцрипт компајлер глобално помоћу ове команде:

нпм инсталирај -г стројопис

Да бисте иницијализовали а тсцонфиг.јсон цонфиг, унесите следећу команду у свој терминал:

тсц --у томе

Горња упутства ће вам помоћи да почнете да користите ТипеСцрипт у свом пројекту.

Зграда са протоком

Да бисте написали Флов код у ЈаваСцрипт датотеци, прогласите Флов синтаксу на врху кода пре било каквих израза или изјава:

// @флов

Можете подесити типове променљивих и функцијских података користећи напомену. Флов ће тада покренути грешку ако очекивани тип није испуњен.

На пример:

// @флов
нека фоо: број = "Здраво";

Флов ће овде приказати грешку јер је очекивани тип вредности фоо је број, а не низ.

Трцати нпм рун флов да видите излаз грешке у терминалу:

Омогућавање екстензије Флов у било ком уређивачу текста по избору ће приказати грешке у уређивачу док кодирате.

Флов такође користи закључивање типа да би одредио која би очекивана вредност израза требало да буде.

На пример:

// @флов
функцијаУради нешто(вредност) {
повратна вредност * "Здраво";
};

дозволити резултат = уради нешто (6);

Не можете извршити аритметичке операције између броја шест и низа Здраво.

Излаз од нпм рун флов биће грешка:

Развијање помоћу ТипеСцрипт-а

Синтакса типа ТипеСцрипт-а је веома слична Флов-овој. Можете дефинисати типове променљивих и функција помоћу напомене типа баш као што бисте то урадили у Флов-у.

ТипеСцрипт се испоручује са неколико других функција сличних Флов-у, као што је закључивање типа.

Узмите пример ТипеСцрипт кода:

// Типесцрипт.тс
тип Резултат = "проћи" | "пропасти"

функцијапроверити(резултат: Резултат) {
ако (резултат "проћи") {
цонсоле.лог("Положио")
} друго {
цонсоле.лог("Није успео")
}
}

Можеш да трчиш тсц Типесцрипт.тс да преведе овај код у обичан ванилла ЈаваСцрипт.

Ово би био исти ТипеСцрипт код преведен у ванилла ЈаваСцрипт:

функцијапроверити(резултат) {
ако (резултат "проћи") {
цонсоле.лог("Положио")
} друго {
цонсоле.лог("Није успео")
}
}

Предности и недостаци ТипеСцрипт-а и Флов-а

Сада знате како да почнете да користите оба алата у свом ЈаваСцрипт пројекту. Требало би да знате предности и недостатке сваког од њих.

Интеграција

Процес подешавања за коришћење Флов-а је нешто сложенији за разлику од ТипеСцрипт-а. Мораћете да подесите ЈаваСцрипт компајлер као што је Бабел или флов-ремове-типес да бисте избацили типове тока из вашег кода. ТипеСцрипт укључује компајлер за претварање ТипеСцрипт кода у ЈаваСцрипт, што олакшава интеграцију.

ТипеСцрипт има много боље алате и већина ЈаваСцрипт оквира га подразумевано подржава. Већина популарних ИДЕ-ова пружа првокласну подршку за ТипеСцрипт. Флов је такође подржан, али захтева посебан додатак.

Заједница

За разлику од Флов-а, ЈаваСцрипт оквири као што су Реацт, Реацт Нативе, Вуе и Ангулар подржавају ТипеСцрипт из кутије.

Ово широко усвајање и велика заједница резултирају бољим ресурсима за учење, ажурирањима и подршком алата.

Флексибилност

Флов делује као провера типа који ради да вас упозори на потенцијално лош код. ТипеСцрипт вас спречава да пишете лош код и има строг систем типова. ТипеСцрипт такође подржава енкапсулација објеката, која помаже да се сложени код може управљати. Флов нема ову функцију.

Услуге

ТипеСцрипт пружа све услуге ЈаваСцрипт језика, као што је рефакторисање кода и аутоматско довршавање. Флов је статичка провера типа која пружа дубоко разумевање и анализу вашег писаног кода.

Флов може да се спусти на увезене модуле и библиотеке вашег пројекта и да уочи како они утичу на ваш код. На пример, може открити и послати упозорење када потребна библиотека у вашем пројекту недостаје или када покушате да приступите дефиницији која не постоји.

Коју статичку проверу треба да користите?

Постоји много валидних аргумената за коришћење сваког алата јер сваки има различите карактеристике. Неки могу бити од највећег приоритета за једног програмера, а ниског приоритета за другог. Оба алата добро функционишу у свом сопственом погледу и нуде предности за њихово коришћење.

Требало би да испитате захтеве вашег пројекта и на основу њих донесете образовану одлуку.