Mi az a TypeScript? Érthető útmutató nem fejlesztőknek
A TypeScript típusokkal kiegészített JavaScript. Címkéket adsz hozzá, amelyek megmondják, milyen fajta adatnak kell lennie az egyes értékeknek — szám, szöveg, rendelések listája —, a TypeScript pedig a kód futtatása előtt ellenőrzi az eltéréseket. A TypeScript honlapja úgy írja le, mint „JavaScriptet típusok szintaxisával”; a típusokat a kód közönséges JavaScriptté alakításakor eltávolítják, amely aztán mindenhol fut, ahol a JavaScript.
Miért fontos, ha AI-val építesz
Az AI-modellek gyorsan írnak kódot, a gyors kódban pedig hibák vannak: egy customerName nevű mező az egyik fájlban, customer_name a másikban, egy ár szövegként átadva szám helyett, egy függvény hiányzó értékkel hívva. Sima JavaScriptben sok ilyen hiba csak akkor derül ki, amikor valaki a rossz gombra kattint.
A TypeScript sokat közülük már korábban elkapja, a kód írása közben:
- Az AI azonnali visszajelzést kap. A típushibák pontosan megmutatják a hibás sort, így az ügynök javíthatja, mielőtt te látnád.
- A módosítások biztonságosabbak. Átnevezel egy mezőt, a TypeScript megjelöl minden helyet, ahol még a régi nevet használják.
- A kód magát magyarázza. A típusok dokumentálják, mit vár és mit ad vissza egy függvény, ez segít neked, az AI-nak és bárkinek, aki később dolgozik rajta.
- Az editorok okosabbak lesznek. Az automatikus kiegészítés és az „ugrás a definícióra” jobban működik, mert az editor tudja, mi az egyes értékek.
Ezért alapértelmezés szerint sok AI-appépítő a TypeScriptet használja.
Mindennapi hasonlat
Gondolj egy raktárra, címkézett rekeszekkel. Minden rekeszen van egy tábla: „Csak raklap”, „Hűtött”, „Max. 500 kg”. Amikor érkezik a szállítmány, az ajtónál egy ellenőr összeveti az árut a táblával. A fagyasztott halat, amely a száraz áruk rekeszébe tartana, az ajtónál megállítják, nem egy héttel később, amikor már bűzlik.
A TypeScript az ajtónál álló ellenőr. A típusok a táblák. Az ellenőrzés azelőtt történik, hogy az árut — a kódodat — használatba veszik. Ha minden a helyén van, a táblákat leveszik: a futó JavaScriptben már nincs típus.
Hogyan működik a TypeScript
- Te (vagy az AI)
.tsvagy.tsxfájlokat írsz — TypeScriptet, típuscímkékkel. - A típusellenőrző beolvassa a kódot, és az eltéréseket hibaként jelzi az editorban vagy a buildben.
- Egy build-lépés eltávolítja a típusokat, és sima JavaScriptet állít elő.
- A JavaScript fut a böngészőben vagy szerveren (Node.js, Deno, Bun).
Fontos következmény: a TypeScript a te írt kódodat ellenőrzi, nem a futás közben érkező adatokat. Ha egy külső API valami váratlant küld vissza, a TypeScript nem látja, hacsak nem adsz hozzá futásidejű validációt.
Példa: egy foglalási űrlap
Tegyük fel, hogy fodrászszalonnak építesz foglalási appot. Így írhatsz le egy foglalást típussal:
type Booking = {
id: number;
customerEmail: string;
service: "haircut" | "colour" | "blow-dry";
startsAt: Date;
price: number;
notes?: string; // a ? jelentése: opcionális
};
És egy függvény, amely kiszámolja a foglalót:
function depositFor(booking: Booking): number {
return booking.price * 0.2;
}
Nézd meg, mit fog meg a TypeScript.
Elírt mező.
depositFor({ id: 1, customerEmail: "lena@example.com", service: "haircut",
startsAt: new Date(), prise: 40 });
A TypeScript jelzi, hogy a prise nem ismert tulajdonság, és a price hiányzik. Sima JavaScriptben csendben NaN (nem szám) foglalót számolna.
Rossz fajta érték.
const booking: Booking = { ...otherFields, price: "40" };
A TypeScript jelzi, hogy szöveg nem használható ott, ahol számot várnak. Enélkül a "40" * 0.2 véletlenül működik, de a "40" + 5 értéke "405" lesz — az a fajta hiba, amely egy számlán jelenik meg.
Nem létező szolgáltatás.
const booking: Booking = { ...otherFields, service: "perm" };
A TypeScript jelzi, hogy a "perm" nem az engedélyezett szolgáltatások egyike. Amikor a szalon később bevezeti a permanentet, hozzáadod a típushoz, és a TypeScript megmutatja az összes helyet, ahol frissíteni kell: az árlistát, az űrlapot, a naptár színeit.
Amit nem fog meg. Ha a foglalási űrlap price: "40" értéket küld a böngészőből a szervernek, a szerveren futó TypeScript ezt futás közben nem látja. Ezért a jól felépített appok a beérkező adatokat is validálják, gyakran egy validációs könyvtárral, amely ellenőrzi az alakot, és valódi Booking objektummá alakítja.
TypeScript vs JavaScript
| JavaScript | TypeScript | |
|---|---|---|
| Mi az | A nyelv, amelyet a böngészők futtatnak | JavaScript plusz típusszintaxis |
| Közvetlenül fut a böngészőben | Igen | Előbb JavaScriptté alakul |
| Típushibákat fog meg | Futás közben, ha egyáltalán | Írás közben, futtatás előtt |
| Beállítás | Nincs | Build-lépés (általában olyan eszközök kezelik, mint a Vite vagy a Next.js) |
| Jó ehhez | Kis szkriptek, gyors kísérletek | Növekvő, változó appok |
| Fájlkiterjesztések | .js, .jsx | .ts, .tsx |
Fontos fogalmak
| Fogalom | Jelentés |
|---|---|
| Típus | Egy leírás arról, mi lehet egy érték: szám, szöveg, egy adott objektumalak. |
| Típusjelölés (annotation) | A kódba írt címke, például price: number. |
| Típuskövetkeztetés (inference) | Amikor a TypeScript maga állapítja meg a típust, címke nélkül. |
| Interfész / típusalias | Egy objektum alakjának elnevezett leírása, például Booking. |
| Unió típus | Érték, amely több lehetőség egyike lehet, például "haircut" | "colour". |
| Opcionális tulajdonság | Olyan mező, amely hiányozhat, ? jelöli. |
any | Típus, amely kikapcsolja az ellenőrzést egy értéknél — vészkijárat, csak óvatosan használd. |
| Típushiba | A TypeScript jelentése arról, hogy valami nem egyezik. |
| Fordítás (compile / transpile) | A TypeScript átalakítása JavaScriptté. |
.tsx | TypeScript fájl JSX-szel, React appokban használják. |
tsconfig.json | A beállítófájl, amely megadja, mennyire szigorúan ellenőrzi a TypeScript a projektet. |
| Futásidejű validáció | A valódi bejövő adatok ellenőrzése, amíg az app fut. |
Gyakori hibák és tévhitek
- „A TypeScript hibamentessé teszi a kódot.” Az adatalakban lévő eltéréseket fogja meg, a rossz logikát nem. Egy 20% helyett 2%-os előleg típusellenőrzésen simán átmegy.
- „A típusok megvédenek a rossz bemenettől.” A típusok futás közben eltűnnek. Validáld a felhasználóktól, űrlapokról és API-kból érkező adatokat.
anymindenhol. Amikor egy AI elakad, előfordulhat, hogyany-hez vagy// @ts-ignore-hoz nyúl, hogy elnémítsa a hibákat. Ez elrejti a problémát, nem megoldja.- A típushibák figyelmen kívül hagyása, mert az előnézet működik. Egyes eszközök típushibás kóddal is futtatnak. A hibák attól még bugok, amelyek várnak arra, hogy előjöjjenek.
- „A TypeScript lassabb.” A típusokat futtatás előtt eltávolítják; a futó JavaScript lényegében ugyanaz.
- „Csak nagy csapatoknak való.” Az egyedül építők is profitálnak belőle, különösen, ha az AI végzi a legtöbb szerkesztést.
Mit kérj az AI-építődtől
- „Használj TypeScriptet szigorú (strict) módban.”
- „Definiálj közös típusokat a fő rekordjainkhoz — Customer, Booking, Invoice — és használd őket a frontenden és a backenden is.”
- „Ne használj
any-t vagy@ts-ignore-t a hibák megkerülésére; javítsd a mögöttes problémát, és mondd meg, mi volt.” - „A szerveren minden bejövő adatot validálj, ne csak típusokkal.”
- „Futtasd a típusellenőrzőt, és javíts ki minden hibát, mielőtt készként jelented.”
- „Ha átnevezel egy mezőt, frissíts minden helyet, amelyet a TypeScript jelez.”
- „Magyarázd el ezt a típushibát egyszerű szavakkal.”
Az AI által készített kód ellenőrzéséhez lásd: hogyan nézd át az AI által generált kódot és hogyan hibakeresd az AI-val épített appot.
TypeScript a Mythexben
Ha nem kérsz semmi konkrétat, a Mythex új projektjeit Vite + React + TypeScript + Tailwind alapokra indítja. A kódszerkesztő nyelvi támogatást ad — kiegészítéseket, diagnosztikát és ugrást a definícióra TypeScripthez és JavaScripthez, többek között más nyelvek mellett —, így a típushibák a kódban láthatók, nem csak az előnézetben. A szerkesztő Free csomagon csak olvasható, Pro csomagon teljesen szerkeszthető. Az első promptban továbbra is kérhetsz más felállást; a technológiák kiválasztásáról szóló dokumentációs oldal elmagyarázza, hogyan, a kódszerkesztő dokumentációja pedig azt, mit mutat a szerkesztő.
Kérdések
Mi a TypeScript egyszerűen fogalmazva?
A TypeScript típusokkal kiegészített JavaScript. Megjelölöd, milyen fajta adatnak kell lennie egy értéknek, például számnak, szövegnek vagy egy vevői rekordnak, a TypeScript pedig a futtatás előtt ellenőrzi a kódot az eltérésekre. Ezután sima JavaScriptté alakul.
A TypeScript más nyelv, mint a JavaScript?
A JavaScript kiterjesztése: JavaScript plusz extra szintaxis a típusokhoz. A TypeScript honlapja úgy írja le, mint JavaScriptet típusok szintaxisával. A típusokat a kód JavaScriptté alakításakor eltávolítják, hogy a kód futtatható legyen.
Miért használják az AI-appépítők a TypeScriptet?
A típusok gyors módot adnak az AI-nak és a körülötte lévő eszközöknek a hibák kiszűrésére, például ha szöveget adnak át ott, ahol számot várnak, vagy elírnak egy mezőnevet. A hibák azelőtt jelennek meg, hogy a felhasználó beleütközne, ami megkönnyíti az AI által generált kód ellenőrzését és módosítását.
A TypeScript hibamentessé teszi az appot?
Nem. Az adatok alakjára vonatkozó hibák egész csoportját kiszűri, de a rossz üzleti logikát nem, és a felhasználóktól vagy API-któl futás közben érkező adatokat sem ellenőrzi, hacsak nem adsz hozzá validációt.
Ki készíti a TypeScriptet?
A TypeScript egy nyílt forráskódú nyelv, amelyet a Microsoft fejleszt. Bárhol fut, ahol a JavaScript, így böngészőkben, a Node.js-ben, a Denóban és a Bunban is.