Водичи

Што е TypeScript? Едноставен водич за не-програмери

TypeScript е JavaScript со типови. Додавате ознаки што кажуваат која врста податоци треба да биде секоја вредност — број, текст, листа на нарачки — а TypeScript го проверува вашиот код за неусогласеност пред да се изврши. Веб-страницата на TypeScript го опишува како „JavaScript со синтакса за типови“; типовите се отстрануваат кога кодот се претвора во обичен JavaScript, кој потоа работи секаде каде што работи JavaScript.

Зошто е важен кога градите со вештачка интелигенција

AI моделите пишуваат код брзо, а брзиот код има грешки: поле наречено customerName во една датотека и customer_name во друга, цена предадена како текст наместо број, функција повикана без една вредност. Во обичен JavaScript, многу од тие грешки се појавуваат дури кога некој ќе го притисне погрешното копче.

TypeScript многу од нив ги фаќа порано, додека кодот се пишува:

  • AI добива веднаш повратна информација. Грешките во типовите го покажуваат точниот ред што е погрешен, па агентот може да го поправи пред да го видите.
  • Промените се побезбедни. Преименувате поле и TypeScript го означува секое место што уште го користи старото име.
  • Кодот се објаснува сам. Типовите документираат што очекува и што враќа функцијата, што помага на вас, на AI и на секој програмер што подоцна ќе работи на него.
  • Уредниците се попаметни. Автоматското довршување и „оди до дефиницијата“ работат подобро затоа што уредникот знае што е секоја вредност.

Тоа е голема причина зошто многу AI градители на апликации го користат TypeScript по основно.

Секојдневна аналогија

Замислете магацин за испорака со означени делови. Секој дел има натпис: „Само палети“, „Ладење“, „Макс. 500 kg“. Кога ќе пристигне испорака, проверувач на вратата ја споредува стоката со натписот. Замрзната риба што е наменета за делот со суви производи се запира на вратата, а не се открива една недела подоцна кога смрди.

TypeScript е проверувачот на вратата. Типовите се натписите. Проверката се случува пред стоката — вашиот код — да се стави во употреба. А кога сè е на место, натписите се симнуваат: извршниот JavaScript нема внатре никакви типови.

Како работи TypeScript

  1. Вие (или AI) пишувате .ts или .tsx датотеки — TypeScript, со ознаки за типови.
  2. Проверувачот на типови го чита кодот и ги пријавува неусогласеностите како грешки во уредникот или build-от.
  3. Build чекор ги отстранува типовите, произведувајќи обичен JavaScript.
  4. JavaScript-от се извршува во прелистувачот или на сервер (Node.js, Deno, Bun).

Важна последица: TypeScript го проверува кодот што сте го напишале, не податоците што пристигнуваат додека апликацијата работи. Ако надворешно API врати нешто неочекувано, TypeScript не може да го види освен ако не додадете валидација при извршување.

Практичен пример: формулар за резервација

Замислете дека градите апликација за резервации за фризерски салон. Ево тип што опишува една резервација:

type Booking = {
  id: number;
  customerEmail: string;
  service: "haircut" | "colour" | "blow-dry";
  startsAt: Date;
  price: number;
  notes?: string; // ? значи дека е опционално
};

И функција што ја пресметува депозитот:

function depositFor(booking: Booking): number {
  return booking.price * 0.2;
}

Сега видете што фаќа TypeScript.

Погрешно напишано поле.

depositFor({ id: 1, customerEmail: "lena@example.com", service: "haircut",
  startsAt: new Date(), prise: 40 });

TypeScript пријавува дека prise не е познато својство и дека недостасува price. Во обичен JavaScript, ова тивко би пресметало депозит од NaN (не број).

Погрешен вид вредност.

const booking: Booking = { ...otherFields, price: "40" };

TypeScript пријавува дека низа не може да се користи таму каде што се очекува број. Без него, "40" * 0.2 случајно функционира, но "40" + 5 дава "405" — видот грешка што се појавува на фактура.

Услуга што не постои.

const booking: Booking = { ...otherFields, service: "perm" };

TypeScript пријавува дека "perm" не е една од дозволените услуги. Кога салонот подоцна ќе додаде перманент, го додавате во типот, а TypeScript ги покажува сите места што треба да се ажурираат — ценовникот, формуларот, бојите на календарот.

Што не може да фати. Ако формуларот за резервации го испрати price: "40" од прелистувачот до серверот, TypeScript на серверот не го гледа тоа при извршување. Затоа добро направените апликации ги валидираат и податоците што доаѓаат, често со библиотека за валидација што ја проверува формата и ја претвора во вистински Booking.

TypeScript наспроти JavaScript

JavaScriptTypeScript
Што еЈазикот што го извршуваат прелистувачитеJavaScript плус синтакса за типови
Работи директно во прелистувачиДаПрво се претвора во JavaScript
Фаќа грешки со типовиПри извршување, ако воопштоДодека се пишува, пред извршување
ПоставувањеНемаBuild чекор (обично го обработуваат алатки како Vite или Next.js)
Добар заМали скрипти, брзи експериментиАпликации што ќе растат и ќе се менуваат
Наставки на датотеки.js, .jsx.ts, .tsx

Вообичаени термини објаснети

ТерминШто значи
ТипОпис на тоа што може да биде една вредност: број, текст, одреден облик на објект.
Анотација на типОзнака напишана во кодот, како price: number.
Инференца на типКога TypeScript сам го открива типот, без ознака.
Interface / type aliasИменуван опис на обликот на објект, како Booking.
Union типВредност што може да биде една од повеќе опции, како "haircut" | "colour".
Опционално својствоПоле што може да недостасува, означено со ?.
anyТип што ја исклучува проверката за една вредност — излез за итни случаи што треба да се користи ретко.
Грешка на типИзвештајот на TypeScript дека нешто не се совпаѓа.
Compile / transpileПретворање на TypeScript во JavaScript.
.tsxTypeScript датотека што содржи JSX, користена во React апликации.
tsconfig.jsonДатотека со поставки за тоа колку строго TypeScript го проверува проектот.
Валидација при извршувањеПроверка на вистинските податоци што пристигнуваат додека апликацијата работи.

Вообичаени грешки и заблуди

  • „TypeScript го прави кодот без грешки.“ Фаќа неусогласеност во обликот на податоците, а не погрешна логика. Депозит од 2% наместо 20% минува проверката на типовите без проблем.
  • „Типовите ме штитат од лош влез.“ Типовите исчезнуваат при извршување. Валидирајте податоци од корисниците, формуларите и API-јата.
  • any насекаде. Кога AI е заглавен, може да посегне по any или // @ts-ignore за да ги утиша грешките. Тоа ги крие проблемите наместо да ги поправи.
  • Игнорирање грешки на типови затоа што Preview работи. Некои алатки сè уште извршуваат код со грешки на типови. Грешките се сè уште бубачки што чекаат да се случат.
  • „TypeScript е побавен.“ Типовите се отстрануваат пред извршување; JavaScript-от што работи е во суштина ист.
  • „Е само за големи тимови.“ И соло градителите имаат корист, особено кога AI прави најголемиот дел од измените.

Што да побарате од вашиот AI градител

  • „Користи TypeScript со вклучен strict режим.“
  • „Дефинирај заеднички типови за нашите главни записи — Customer, Booking, Invoice — и користи ги и на фронтендот и на бекендот.“
  • „Не користи any или @ts-ignore за да ги надминеш грешките; поправи го основниот проблем и кажи ми што беше.“
  • „Валидирај ги сите податоци што пристигнуваат на серверот, не само со типови.“
  • „Пушти ја проверката на типови и поправи ги сите грешки пред да кажеш дека е готово.“
  • „Кога ќе преименуваш поле, ажурирај го секое место што TypeScript го означува.“
  • „Објасни ја оваа грешка на типот со едноставни зборови.“

За повеќе за проверка на она што AI го произвел, видете како да прегледате код генериран со AI и како да дебагирате апликација направена со AI.

TypeScript во Mythex

Кога не побарате нешто специфично, Mythex ги започнува новите проекти на Vite + React + TypeScript + Tailwind. Уредникот на код вклучува јазичен интелигенција — довршувања, дијагностика и оди-до-дефиниција за TypeScript и JavaScript, меѓу другите јазици — па грешките на типови се видливи во кодот, а не само во Preview. Уредникот е само за читање на Free и целосно уредлив на Pro. Сè уште можете да побарате поинаква поставка во првиот prompt; страницата во документацијата за како се избира технологијата објаснува како, а документацијата за уредникот на код ја опишува содржината на уредникот.

Прашања

Што е TypeScript едноставно кажано?

TypeScript е JavaScript со типови. Ја означувате која врста податоци треба да биде секоја вредност, како број, текст или запис на клиент, а TypeScript го проверува кодот за неусогласености пред да се изврши. Потоа се претвора во обичен JavaScript.

Дали TypeScript е различен јазик од JavaScript?

Тој е надградба на JavaScript: JavaScript плус дополнителна синтакса за типови. Веб-страницата на TypeScript го опишува како JavaScript со синтакса за типови. Типовите се отстрануваат кога кодот се претвора во JavaScript за да се изврши.

Зошто AI градителите на апликации користат TypeScript?

Типовите му даваат на AI и на алатките околу него брз начин да фатат грешки, како предавање текст таму каде што се очекува број или погрешно напишано име на поле. Грешките се појавуваат пред корисникот да ги види, што го прави кодот генериран со AI полесен за проверка и промена.

Дали TypeScript ја прави апликацијата без грешки?

Не. Фаќа цела категорија грешки во обликот на податоците, но не и погрешна бизнис логика, а не ги проверува податоците што при извршување доаѓаат од корисниците или API-јата, освен ако не додадете валидација.

Кој го прави TypeScript?

TypeScript е јазик со отворен код што го развива Microsoft. Работи секаде каде што работи JavaScript, вклучително прелистувачи, Node.js, Deno и Bun.

Mythex · Pricing · Градете што било со AI · Шаблони за веб-страници и апликации · Mythex во споредба · Речник за градење апликации со AI · Бесплатни алатки за градење апликации со AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)