Vodniki

Kaj je TypeScript? Vodnik v preprostem jeziku za nestrokovnjake

TypeScript je JavaScript s tipi. Dodate oznake, ki povedo, kakšna vrsta podatkov naj bo vsaka vrednost – število, besedilo, seznam naročil –, TypeScript pa kodo pred zagonom preveri glede neskladij. Spletna stran TypeScripta ga opisuje kot »JavaScript s sintakso za tipe«; tipi se ob pretvorbi v navaden JavaScript odstranijo, ta pa deluje povsod, kjer deluje JavaScript.

Zakaj je to pomembno, ko gradite z AI

Modeli AI pišejo kodo hitro, hitra koda pa vsebuje napake: polje customerName v eni datoteki in customer_name v drugi, cena, poslana kot besedilo namesto številke, funkcija, klicana brez ene vrednosti. V običajnem JavaScriptu se mnoge od teh napak pokažejo šele, ko nekdo klikne napačen gumb.

TypeScript jih mnoge ujame prej, med pisanjem kode:

  • AI takoj dobi povratno informacijo. Napake pri tipih kažejo na točno vrstico, ki je napačna, zato jo lahko agent popravi, preden jo vidite vi.
  • Spremembe so varnejše. Če preimenujete polje, TypeScript označi vsako mesto, ki še vedno uporablja staro ime.
  • Koda sama sebe pojasnjuje. Tipi dokumentirajo, kaj funkcija pričakuje in vrača, kar koristi vam, AI-ju in vsakemu razvijalcu, ki bo kasneje delal na njej.
  • Urejevalniki so pametnejši. Samodokončevanje in »pojdi na definicijo« delujeta bolje, ker urejevalnik ve, kaj je vsaka vrednost.

Zato mnogi AI graditelji aplikacij privzeto uporabljajo TypeScript.

Vsakdanja primerjava

Pomislite na skladišče s označenimi oddelki. Vsak oddelek ima tablo: »Samo palete«, »Hladilnica«, »Največ 500 kg«. Ko pride dobava, preverjalec pri vratih primerja blago s tablo. Zamrznjena riba, namenjena oddelku za suho blago, se ustavi pri vratih, ne pa šele teden dni pozneje, ko začne smrdeti.

TypeScript je preverjalec pri vratih. Tipi so table. Preverjanje poteka, preden blago – vaša koda – gre v uporabo. In ko je vse na mestu, se table odstranijo: teče JavaScript, v katerem tipov ni več.

Kako deluje TypeScript

  1. Vi (ali AI) pišete datoteke .ts ali .tsx – TypeScript s tipskimi oznakami.
  2. Preverjalnik tipov prebere kodo in neskladja javi kot napake v urejevalniku ali pri gradnji.
  3. Korak gradnje odstrani tipe in ustvari navaden JavaScript.
  4. JavaScript se izvaja v brskalniku ali na strežniku (Node.js, Deno, Bun).

Pomembna posledica: TypeScript preverja kodo, ki ste jo napisali, ne pa podatkov, ki pridejo med delovanjem aplikacije. Če zunanji API vrne nekaj nepričakovanega, tega TypeScript ne vidi, razen če dodate preverjanje med izvajanjem (runtime validation).

Delovni primer: obrazec za rezervacije

Recimo, da gradite aplikacijo za rezervacije v frizerskem salonu. Tukaj je tip, ki opisuje rezervacijo:

type Booking = {
  id: number;
  customerEmail: string;
  service: "haircut" | "colour" | "blow-dry";
  startsAt: Date;
  price: number;
  notes?: string; // ? pomeni, da je neobvezno
};

In funkcija, ki izračuna polog:

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

Poglejte, kaj TypeScript ujame.

Napačno zapisano polje.

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

TypeScript javi, da prise ni znano polje in da manjka price. V navadnem JavaScriptu bi tiho izračunal pologa NaN (ni število).

Napačna vrsta vrednosti.

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

TypeScript javi, da niz ne more biti tam, kjer se pričakuje število. Brez njega "40" * 0.2 slučajno deluje, "40" + 5 pa da "405" – vrsta napake, ki se pokaže na računu.

Storitev, ki ne obstaja.

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

TypeScript javi, da "perm" ni med dovoljenimi storitvami. Ko salon pozneje doda trajne (perm), to dodate v tip, TypeScript pa pokaže vsako mesto, ki jo mora posodobiti – cenik, obrazec, barve v koledarju.

Česa ne more ujeti. Če obrazec za rezervacije z brskalnika pošlje price: "40" na strežnik, TypeScript na strežniku tega med izvajanjem ne vidi. Zato dobro narejene aplikacije preverijo tudi prihajajoče podatke, pogosto z validacijsko knjižnico, ki preveri obliko in jo pretvori v pravilen Booking.

TypeScript proti JavaScriptu

JavaScriptTypeScript
Kaj jeJezik, ki ga izvajajo brskalnikiJavaScript plus sintaksa za tipe
Teče neposredno v brskalnikihDaNajprej se pretvori v JavaScript
Ujame napake s tipiMed izvajanjem, če splohMed pisanjem, pred zagonom
NastavitevNobenaKorak gradnje (običajno ga opravi orodje, kot je Vite ali Next.js)
Primeren zaMajhne skripte, hitre preizkuseAplikacije, ki bodo rasle in se spreminjale
Končnice datotek.js, .jsx.ts, .tsx

Pogosti izrazi, razloženi

IzrazKaj pomeni
TipOpis, kaj vrednost lahko je: število, besedilo, določena oblika objekta.
Tipska oznaka (type annotation)Oznaka, zapisana v kodi, na primer price: number.
Sklepanje tipa (type inference)TypeScript sam ugotovi tip, brez oznake.
Vmesnik / aliasi tipovPoimenovan opis oblike objekta, na primer Booking.
Unijski tip (union type)Vrednost, ki je lahko ena izmed več možnosti, na primer "haircut" | "colour".
Neobvezna lastnostPolje, ki lahko manjka, označeno z ?.
anyTip, ki za vrednost izklopi preverjanje – izhod v sili, ki ga uporabljajte skrbno.
Napaka tipaPoročilo TypeScripta, da nekaj ne ustreza.
Prevajanje (compile / transpile)Pretvorba TypeScripta v JavaScript.
.tsxDatoteka TypeScripta, ki vsebuje JSX, uporabljena v aplikacijah React.
tsconfig.jsonNastavitvena datoteka, ki določa, kako strogo TypeScript preverja projekt.
Validacija med izvajanjemPreverjanje dejanskih prihajajočih podatkov, medtem ko aplikacija teče.

Pogoste napake in zmote

  • »TypeScript naredi kodo brez napak.« Ujame neskladja v obliki podatkov, ne v logiki. Pologa 2 % namesto 20 % bo tipsko pravilen.
  • »Tipi me varujejo pred slabimi vnosi.« Tipi izginejo med izvajanjem. Preverjajte podatke iz uporabniških obrazcev in API-jev.
  • any povsod. Ko se AI zatakne, lahko seže po any ali // @ts-ignore, da utiša napake. To skrije težave namesto da bi jih odpravilo.
  • Ignoriranje napak tipov, ker predogled deluje. Nekatera orodja še vedno zaženejo kodo z napakami tipov. Te napake so še vedno hrošči, ki čakajo, da se zgodijo.
  • »TypeScript je počasnejši.« Tipi se odstranijo pred zagonom; JavaScript, ki teče, je v bistvu enak.
  • »Samo za velike ekipe je.« Tudi samostojni graditelji imajo koristi, zlasti kadar večino sprememb naredi AI.

Kaj zahtevati od AI graditelja

  • „Uporabi TypeScript z vključenim strogim načinom.“
  • „Določi skupne tipe za glavne zapise – Customer, Booking, Invoice – in jih uporabi tako v frontendu kot v backendu.“
  • „Ne uporabljaj any ali @ts-ignore, da bi preskočil napake; odpravi osnovni problem in mi povej, kaj je bil.“
  • „Preveri vse prihajajoče podatke na strežniku, ne le s tipi.“
  • „Zaženi preverjalnik tipov in popravi vse napake, preden poročaš, da je končano.“
  • „Ko preimenuješ polje, posodobi vsako mesto, ki ga TypeScript označi.“
  • „Razloži to napako tipa v preprostem jeziku.“

Za več o preverjanju tega, kar je ustvaril AI, glejte kako pregledati kodo, ustvarjeno z AI in kako odpraviti napake v aplikaciji, zgrajeni z AI.

TypeScript v Mythexu

Kadar ne zahtevate ničesar posebnega, Mythex nove projekte začne na Vite + React + TypeScript + Tailwind. Urejevalnik kode vključuje jezikovno inteligenco – dokončevanje, diagnostiko in skok na definicijo za TypeScript in JavaScript ter druge jezike –, zato so napake tipov vidne v kodi, ne le v predogledu. Urejevalnik je na Free samo za branje, na Pro pa v celoti urejljiv. Kakšno drugačno nastavitev lahko še vedno zahtevate v prvem pozivu; stran dokumentacije o tem, kako se izbere sklad, pojasni postopek, dokumentacija o urejevalniku kode pa opiše, kaj urejevalnik prikazuje.

Vprašanja

Kaj je TypeScript preprosto povedano?

TypeScript je JavaScript s tipi. Označite, kakšna vrsta podatkov naj bo vsaka vrednost, na primer število, besedilo ali zapis stranke, TypeScript pa kodo preveri za neskladja, preden se zažene. Nato se pretvori v navaden JavaScript.

Ali je TypeScript drug jezik od JavaScripta?

Je nadmnožica JavaScripta: JavaScript plus dodatna sintaksa za tipe. Spletna stran TypeScripta ga opisuje kot JavaScript s sintakso za tipe. Tipi se ob pretvorbi kode v JavaScript, ki se izvaja, odstranijo.

Zakaj AI graditelji aplikacij uporabljajo TypeScript?

Tipi dajo AI-ju in orodjem okoli njega hiter način, kako ujamejo napake, na primer posredovanje besedila tam, kjer se pričakuje število, ali napačno zapisano ime polja. Napake se pokažejo, preden jih uporabnik naleti, zato je kodo, ki jo ustvari AI, lažje preveriti in spreminjati.

Ali TypeScript naredi aplikacijo brez napak?

Ne. Ujame celo vrsto napak v obliki podatkov, ne pa napačne poslovne logike, in ne preverja podatkov, ki med delovanjem prihajajo od uporabnikov ali API-jev, razen če dodate validacijo.

Kdo je ustvaril TypeScript?

TypeScript je odprtokodni jezik, ki ga razvija Microsoft. Deluje povsod, kjer deluje JavaScript, vključno z brskalniki, Node.js, Deno in Bun.

Mythex · Pricing · Zgradite karkoli z AI · Predloge za spletna mesta in aplikacije · Mythex v primerjavi · Slovar pojmov gradnje aplikacij z AI · Brezplačna orodja za gradnjo aplikacij z 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 Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)