Што е TypeScript? Едноставен водич за не-програмери
TypeScript е JavaScript со типови. Додавате ознаки што кажуваат која врста податоци треба да биде секоја вредност — број, текст, листа на нарачки — а TypeScript го проверува вашиот код за неусогласеност пред да се изврши. Веб-страницата на TypeScript го опишува како „JavaScript со синтакса за типови“; типовите се отстрануваат кога кодот се претвора во обичен JavaScript, кој потоа работи секаде каде што работи JavaScript.
Зошто е важен кога градите со вештачка интелигенција
AI моделите пишуваат код брзо, а брзиот код има грешки: поле наречено customerName во една датотека и customer_name во друга, цена предадена како текст наместо број, функција повикана без една вредност. Во обичен JavaScript, многу од тие грешки се појавуваат дури кога некој ќе го притисне погрешното копче.
TypeScript многу од нив ги фаќа порано, додека кодот се пишува:
- AI добива веднаш повратна информација. Грешките во типовите го покажуваат точниот ред што е погрешен, па агентот може да го поправи пред да го видите.
- Промените се побезбедни. Преименувате поле и TypeScript го означува секое место што уште го користи старото име.
- Кодот се објаснува сам. Типовите документираат што очекува и што враќа функцијата, што помага на вас, на AI и на секој програмер што подоцна ќе работи на него.
- Уредниците се попаметни. Автоматското довршување и „оди до дефиницијата“ работат подобро затоа што уредникот знае што е секоја вредност.
Тоа е голема причина зошто многу AI градители на апликации го користат TypeScript по основно.
Секојдневна аналогија
Замислете магацин за испорака со означени делови. Секој дел има натпис: „Само палети“, „Ладење“, „Макс. 500 kg“. Кога ќе пристигне испорака, проверувач на вратата ја споредува стоката со натписот. Замрзната риба што е наменета за делот со суви производи се запира на вратата, а не се открива една недела подоцна кога смрди.
TypeScript е проверувачот на вратата. Типовите се натписите. Проверката се случува пред стоката — вашиот код — да се стави во употреба. А кога сè е на место, натписите се симнуваат: извршниот JavaScript нема внатре никакви типови.
Како работи TypeScript
- Вие (или AI) пишувате
.tsили.tsxдатотеки — TypeScript, со ознаки за типови. - Проверувачот на типови го чита кодот и ги пријавува неусогласеностите како грешки во уредникот или build-от.
- Build чекор ги отстранува типовите, произведувајќи обичен JavaScript.
- 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
| JavaScript | TypeScript | |
|---|---|---|
| Што е | Јазикот што го извршуваат прелистувачите | 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. |
.tsx | TypeScript датотека што содржи 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.